我有一些看起来像这样的数据:
353: 340122810048577428
354: 363117512048110005
355: 387632532919029223
356: 413766180933342362
357: 441622981929358437
358: 471314064268398780
359: 502957566506000020
360: 536679070310691121
361: 572612058898037559
362: 610898403751884101
363: 651688879997206959
我正在尝试找出哪个索引可以被 100 万整除。
index = my_data[:,0]
values = my_data[:,1]
k = 0
for i in values:
k += 1
if i % 1000000 == 0 :
print i
break
print k-1
对于这段代码,我得到的输出是:
5.02957566506e+17
359
但索引 359 处的值为 502957566506000020,其中最后 6 位数字不为零。我在这里犯了什么错误?
最佳答案
不要在 Python 中使用像 i
这样的索引变量。我们在 21 世纪。
s = """353: 340122810048577428
354: 363117512048110005
355: 387632532919029223
356: 413766180933342362
357: 441622981929358437
358: 471314064268398780
359: 502957566506000020
360: 536679070310691121
361: 572612058898037559
362: 610898403751884101
363: 651688879997206959"""
for line in s.split("\n"):
k, v = line.split(":")
if int(v.strip()) % 1000000 == 0:
print(k)
输出:无。
关于大量 mod 运算符的 python 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38458132/