Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python减去列表中的整数以返回值_Python_List_Element - Fatal编程技术网

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

Python减去列表中的整数以返回值,python,list,element,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_nam

我想在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'

非常感谢您的帮助。

您可以尝试以下方法:

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

您可以尝试以下方法:

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
或:

请尝试以下操作:

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
或:


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

与其使用您编写的
deleteLast
函数,不如使用如下切片:

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


稍后您将遇到另一个问题,因为您的while循环根本没有进展。请考虑使用for循环。 这是因为
list.pop()
正在返回“弹出”项,它不会再次返回列表

与其使用您编写的
deleteLast
函数,不如使用如下切片:

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


稍后您将遇到另一个问题,因为您的while循环根本没有进展。请考虑使用for循环。 为什么会被否决?它清晰、简洁、准确地描述了问题和尝试了什么。为什么会被否决?它清晰、简洁、准确地描述了问题和尝试的内容。我认为仅用两个操作数就可以解决问题。@AshwiniChaudhary只是一个选项,仅此而已,Op可以简单地阅读并了解运算符模块我认为对于两个操作数来说,
sub
是一种过度杀伤力。@AshwiniChaudhary只是一个选项,除此之外,Op可以简单地阅读并了解运算符模块非常感谢!这个代码运行得非常好。非常感谢@user2163463很高兴这对您有所帮助,如果它对您有效,您可以。非常感谢!这个代码运行得非常好。非常感谢@user2163463很高兴这对您有所帮助,如果它对您有效,您可以。