Python 将 List 中的整数相减以返回一个值

标签 python list element

我想在 Python 2.7 中获取像这样的大文件:

123 456 GTHGGGTH
223 567 FGRTHSYS
12933 4656832 GJWSOOOSKKSSJ
.....

我想逐行读取文件,忽略第三个元素,并将每行中的第二个元素减去第一个元素。因此上面的第 1 行将返回 333。

到目前为止我已经尝试过:

def deleteLast(list):      
    NewL = list.pop()        
    return NewL

f = open(file_name, 'r')
line = f.readline()
while line:
    L = line.split()
    L2 = deleteLast(L)
    L3 = [int(number) for number in L2]
    Length = L3[1]-L3[0]
    print Length
f.close()

但是,当我尝试这样做时,编译器会说:

 ValueError: invalid literal for int() with base 10: 'T'

感谢所有帮助。

最佳答案

这是因为 list.pop() 返回“弹出”的项目,它不会再次返回列表。

不要使用您编写的这个 deleteLast 函数,最好使用如下所示的切片:

L2 = line.split()[0:2]

稍后您将遇到另一个问题,因为您的 while 循环根本没有前进。考虑使用 for 循环。

关于Python 将 List 中的整数相减以返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376013/

相关文章:

python - 具有连续替代符号的值的最大子序列的大小?

r - 如何提取 lapply 的 FUN 中列表项的索引或名称?

list - 查找列表中元素的索引

ruby - 如何计算 Ruby 数组中相同的字符串元素

python - groupby 多个值,并绘制结果

list - Python:将项目添加到列表直到条件为真

处理异常的Python线程池

python - 从元组中删除元素时额外的空元素

python - 没有在 postgresql 中的表上执行查询

python - 使用matplotlib和mysql数据库创建散点图