Python减去列表中的整数以返回值
我想在Python 2.7中使用这样一个大文件: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
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很高兴这对您有所帮助,如果它对您有效,您可以。