我有一个包含以下数据的文件:
PAIR 1MFK 1 URANIUM 82 HELIUM 112 3.6997
PAIR 2JGH 2 PLUTONIUM 98 POTASSIUM 88 5.3003
PAIR 345G 3 SODIUM 23 CARBON 14 1.664
PAIR 4IG5 4 LITHIUM 82 ARGON 99 2.5506
现在,我必须确定第 5 列的值是否大于第 7 列的值,反之亦然。 我用过:
inp = open("filename".'r').read().strip().split('\n')
for line in map(str.split, inp):
k = line[5]
m = line[7]
if k > m:
print 'loop 1 satisfies'
elif m > k:
print 'loop 2 satisfies'
else:
print 'loop error'
但问题是我得到的输出如下:
loop 1 satisfies
loop 1 satisfies
loop 1 satisfies
loop 1 satisfies
但如果第一行第 5 列的值 82 小于第 7 列的值。
我无法理解这种错误的原因。
请帮忙。
最佳答案
这是因为您没有先将它们转换为数字,您的数据仍然是字符串。
>>> '82' < '112'
False
>>> 82 < 112
True
顺便说一句,项目将从 0 开始计数,所以我认为您可能打算比较第 4 项和第 6 项。
关于python - 比较python中矩阵中的两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10442390/