def build_country_dict(lines):
'''Return a dictionary in form of {country: count}, where country is
the country code and count is the number of medals won by athletes
from that country'''
d = {} #Start with an empty dictionary
for i in range(1, len(lines)): #For i ranging from 1 to the length of lines
line_list = lines[i].split(',') # Split lines[i] into a list - split on comma
country = line_list[6] # Get the country
if country not in d: # If the country is not in the dictionary
d[country] = 0 # Add it with count of 0
d[country] = d[country] + 1 # Add one to the country count
return d #Return the dictionary
错误IndexError: list index out of range
指的是line_list[6]
但是我使用的列表中有11个元素,所以我不知道如何纠正这个问题。
原始文件是一个cvs文件,因此使用excel我检查了整个内容,每一行都应该变成一个包含11个元素的列表。但是文件太大,我无法打印所有列表。
我确实试过了一小部分 打印(line_list [6]) 它打印得很好。
答案 0 :(得分:2)
lines[i]
似乎没有足够的数据来拆分“,”。
尝试使用此代码而不是country = line_list[6]
country = line_list[6] if len(line_list) > 6 else 'unknown'
可替换地,
try:
country = line_list[6]
except IndexError:
continue
这更适合这种情况。