Я пытаюсь создать словарь, содержащий внутри него вложенный список.Проблемы с Python-словарями и вложенными списками
Цель будет иметь это быть:
key : [x,y,z]
Я потянув информацию из файла CSV и подсчета количества раз некий ключ показывает в каждом столбце. Однако я получаю ошибку ниже
> d[key][i] = 1
KeyError: '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
Что я подправить в этом цикле, чтобы он создать ключ, если он не существует, а затем добавить к нему, если он делает?
Это решило проблему ошибки, поэтому я принял его, однако мой цикл не добавляя к любому элементу массива за пределами из first – Alex
@Alex Это потому, что вы должны заменить это: 'd [key] [i] = 1' с этим' d [key] [i] + = 1' – smac89
Я не знаю, правильно ли я вас понимаю. Но у вас есть один внешний цикл (для i в диапазоне (0,3): ') с наборами' i' сначала до 0, затем 1, а затем 2. Внутренний цикл итерации по строкам и добавление использует первую запись этого строка, чтобы добавить один список, указанный сам по себе ('key'), но там в записи, обозначенной буквой' i'. Потому что это все немного сложно, я думаю, вам следует внимательно проверить свой код, если вам не нужно менять порядок циклов или даже удалять внешний. Пожалуйста, напишите, если я неправильно понял ваш код или ваш вопрос. – TobiMarg