Как избежать перезаписи результата понимания слова при чтении из CSV? - PullRequest
1 голос
/ 01 февраля 2020

Рассмотрим следующий csv файл:

Id,Country,Cities
1,Canada,"Toronto;Ottawa;Montreal"
2,Italy,"Rome;Milan;Naples;Palermo"
3,France,"Paris;Cannes;Lyon"
4,Spain,"Seville;Alicante;Barcelona"

Я хочу прочитать названия городов и поместить их в словарь с ключом «Страна», поэтому я делаю это:

my_dict = {}
with open(DATA, 'r') as f:
  map_reader = csv.reader(f)
  field_names = next(map_reader)
  for row in map_reader:
     my_dict = { r:row[1] for r in row[2].split(";") }

print(my_dict)

Проблема здесь в том, что на каждой итерации результат понимания dict перезаписывает my_dict. Как правильно использовать это сделать?

1 Ответ

4 голосов
/ 01 февраля 2020

Вы хотите обновить существующий дикт, а не заменить его.

for row in map_reader:
    my_dict.update({r: row[1] for r in row[2].split(";")})
...