我是一个初学者,我正在寻求帮助。我应该写一个简单的程序,从一个文件中读取数字(它们按如下两列排序:
3 788506
255 879405
3 687899
255 697879 etc)
总是两两从3附近的数字中减去255附近的数字。差异应该被附加到一个列表中。我还必须检查这一对是否正确(例如,它总是一个接一个地是3和255,而不是两个255)。到目前为止,我想我已经准备好了,但它什么也做不了。我花了几个小时寻找我的错误,但我就是看不出哪里出了问题。如果有任何帮助,我将不胜感激。你知道吗
filepath = "C:/liz/RT1-1.dat"
f = open (filepath, 'rU')
reac3 = []
reac255 = []
right_list = []
wrong_list = []
very_wrong_list =[]
li = [i.strip().split() for i in f.readlines()]
for element in li:
if int(element[0]) == 3: reac3.append(element[-1])
elif int(element[0]) == 255: reac255.append(element[-1])
k = 0
for i in range (0, len(li)+1, 2): #0,2,4,6,8 etc
if li[i][0] == 3 and li[i+1][0] == 255:
difference = int(reac255[k]) - int(reac3[k])
print int(difference)
k+=1
if difference > 300 and difference < 1200: right_list.append(difference)
else: wrong_list.append(difference)
else: very_wrong_list.append(li[i])
print right_list
i.strip().split()
将返回2个字符串。。因此,比较li[i][0] == 3
&;li[i+1][0] == 5
应该失败,因为li[i][0]
&;li[i+1][0]
仍然是字符串。你知道吗还要注意的是,既然
len(li)
应该是偶数,那么xrange(0, len(li) + 1, 2)
最终会使i = len(li)
超出列表边界。你知道吗相关问题 更多 >
编程相关推荐