给定一组整数(例如{1000000, 20000000, 1234000, 1200000}
),我想对所有整数应用一个函数:
换言之,我希望尽可能多地去掉零,而不丢失绝对量值以外的任何信息,因此集合将变成{1000, 20000, 1234, 1200}
这个操作有没有一个术语,有没有一个有效的Python函数,或者我应该快速编写这个代码?你知道吗
Edit:This solution不是重复的,因为它处理的是单数——在我的例子中,零的数目取决于特定的集合。你知道吗
编辑2:绿斗篷的家伙提供了一个解决方案,为我的确切要求,和伊利莫拉一个做什么,我应该有实际的概念放在第一位。你知道吗
看看你的需求,你所追求的是什么,可以很容易地做到除以每个输入数字的GCD(最大公分母)的所有输入数字。你知道吗
使用输入的数字,它将生成以下结果:
由于GCD的属性,输出被保证是可能的最小整数,仍然保持每个数字之间的相对比例。你知道吗
不知道有没有更有效的方法。我会用:
结果:
它将返回具有以下值的numpy数组: [1000 20000 1234 1200]
考虑到你在这里关心的只是数量的减少,你是否考虑过仅仅用
Decimal
表示数字,然后用科学记数法打印它们?你知道吗如果这对于您的用例来说不合理,那么您可以做的另一件事就是确定您可以减少的最大幅度,然后再减少那么多。对于震级为10的情况,这相当简单,您可以使用字符串:
对于非标准震级(例如震级为3),你需要更具创造性,想出一种方法来有效地计算出你能除以的最大震级。我上面的例子在这里采用了一种快捷方式,即检查当我们去掉尾随的零时有多少数字消失了(这相当于检查10的最大指数,它可以是整数除以数字)。由于python没有内置的方法来打印不是2、8、10或16的基,因此您必须找到自己的解决方案。你知道吗
相关问题 更多 >
编程相关推荐