从CSV读取时如何避免覆盖字典理解的结果?

问题描述 投票:1回答:1

请考虑以下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。正确的使用方法是什么?

python csv dictionary dictionary-comprehension
1个回答
4
投票

您要更新现有字典,而不是替换它。

for row in map_reader:
    my_dict.update({r: row[1] for r in row[2].split(";")})
© www.soinside.com 2019 - 2024. All rights reserved.