超出索引范围错误,包含列表和字典的while循环

时间:2015-04-01 17:31:04

标签: python list dictionary

在找到我之前问题的替代解决方案后,我遇到了一个新问题。我问我的老师,他建议我用这种格式的dict(zip)。

final={}
rawLines=open("x.txt").readlines()
y=0
while y <5:
 for line in rawLines:
    userlist=rawLines[y].split(',')
    userid=userlist[0]
    avmph=userlist[1]
    print(avmph)
    #print(userid)
    for lines in rawLines[0:]:
        lines=lines[:-1]
        items=lines.split(',')
        final[items[0]]=dict(zip(userid,avmph))
 y=y+1
else:
 sorted[avmph()]
 print(avmph)
 print(userid)

我正在使用line获得索引范围错误。错误消息

Traceback (most recent call last):
  File "C:\Users\Ryan\Desktop\test.py", line 6, in <module>
    userlist=rawLines[y].split(',')
IndexError: list index out of range

我使用了.csv文件样式的.txt文件,它允许我创建列表。我最终需要对每小时的平均英里数进行排序并将用户ID返回。我的主要问题似乎在于&#39; y&#39;变量和我的while循环 (链接到我的.txt文件的屏幕截图)http://gyazo.com/ac8f734b9bb625398de6412191a64981

1 个答案:

答案 0 :(得分:1)

如果你写

y=0
while y < 5: print(y); y+=1

然后输出将是:

0
1
2
3
4

&安培;你的文件只包含 4 行。 rawlines [y] ,其中 y = 4 尝试访问文件的第五行。这给出了这个错误。用替换第四行,而y&lt; 4 来解决它。