[英]comparing strings and list index error
我正在尝试在python中运行该程序,但它一直给我一个错误,即if语句行的列表索引超出范围。 但是它确实在需要的地方打印出“找到匹配项”。
import csv
with open('/Users/jadhav/Documents/Hubble files/m4_hubble_1.csv') as f:
bl = [[],[],[],[],[]]
reader = csv.reader(f)
for r in reader:
for c in range(5):
bl[c].append(r[c])
print "The files have now been sorted into lists"
for c in range(0,999):
if bl[4][c] == "HST_10775_64_ACS_WFC_F814W":
print "match found"
else:
del bl[0][c]
del bl[1][c]
del bl[2][c]
del bl[3][c]
del bl[4][c]
文件似乎少于999行,因此bl
不够长。 添加异常处理,预先计算最大索引,或对元素进行不同的迭代。
您不应该从要迭代的列表中删除项目。
首先,您要检查bl[0][0]
,然后删除bl[0][0]
,从而使后面的那些向下移位。 现在,列表中有999个项目。
然后,您正在检查bl[0][1]
,它之前是bl[0][2]
(原来的bl[0][1]
现在是bl[0][0]
)。
等等。
最终,当c
为500时,列表中只有500个项目。 IndexError
!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.