python - 比较python中矩阵中的两列

标签 python

我有一个包含以下数据的文件:

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/

相关文章:

python - PyOpenGL、Pygame 和着色器似乎不合作

Python 素数代码在 spoj 上给出运行时错误(NZEC)

python - numpy数组将多列除以一列

python - 对 'restaurants_list' 进行反向操作,未找到参数 '()' 和关键字参数 '{}'。尝试了 0 个模式 : []

python - PyQt : How to insert text at the cursor in QTableView

python - 从字典的字典中创建一个内部值列表

python - 通过对自身执行计算从 1dim numpy 数组创建 numpy 矩阵?

c++ - 通过 Python 控制台对 PythonQt 库进行非锁定调用

python - 如何获取或初始化我想要的变量?

python - 如何从 python 中的二维列表中获取所有可能的项目组合?