Python减去列表中的整数以返回值

2024-09-30 16:38:02 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我想逐行读入文件,忽略第三个元素,然后用第一个元素减去每行的第二个元素。因此,上面的第1行将返回333。在

我已经试过了:

^{pr2}$

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

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

感谢所有的帮助。在


Tags: 文件元素forbase编译器withintvalueerror
3条回答

你可以试试这样的方法:

In [8]: with open("abc") as f:     #always use with statement when handling files
   ...:     for line in f:
   ...:         x,y=map(int,line.split()[:2])
   ...:         print y-x
   ...:         
333
344
4643899

尝试以下操作:

with open(file_name, 'r') as f:
    for line in f.readlines():
        rowData = line.split()
        left, right = map(int, rowData[:2])
        length = right - left
        print length

或者:

^{pr2}$

这是因为list.pop()返回的是“popped off”项,它不再返回列表。在

与其编写这个deleteLast函数,不如使用这样的切片:

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

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

相关问题 更多 >