我正在尝试创建一个包含嵌套列表的字典。
目标是:
key : [x,y,z]
我正在从一个 csv 文件中提取信息,并计算某个键在每一列中出现的次数。但是我收到以下错误
> d[key][i] = 1
KeyError: 'owner'
owner 是我专栏的标题。
if __name__ == '__main__':
d = {}
with open ('sample.csv','r') as f:
reader = csv.reader(f)
for i in range(0,3):
for row in reader:
key = row[0]
if key in d:
d[key][i] +=1
else:
d[key][i] = 1
for key,value in d.iteritems():
print key,value
我要在这个循环中做些什么调整,让它在不存在的情况下创建一个 key ,然后在存在的情况下添加它?
请您参考如下方法:
问题是,您尝试使用没有列表的列表 ([i])。
所以你必须更换
d[key][i] = 1
与
d[key] = [0,0,0]
d[key][i] = 1
这将首先创建包含三个条目的列表(因此您可以随后使用 [0]、[1] 和 [2]没有错误)然后将一个分配给列表中的正确条目。
