我有一个这种格式的文件:
1,abc
1,def
2,abc
3,abc
3,def
我正在将此文件加载到字典中,如下所示:
d = dict()
datareader = csv.reader(open(filename, "r"))
for row in datareader:
if row[0] in d:
d.get(row[0]).add(row[1])
else:
d[row[0]] = {row[1]}
它加载成功并且输出是(这是我想要的):
{'1': {'abc', 'def'}, '2': {'abc'}, '3': {'abc', 'def'}}
是否可以将 if/else 条件写在一行中?如果是,怎么办?
关于如何使此代码简洁的任何其他想法?
最佳答案
内置的 collections
模块就是这样,defaultdict :
from collections import defaultdict
d = defaultdict(set)
datareader = csv.reader(open(filename, "r"))
for key, value in datareader:
d[key].add(value)
关于python - 简明填写词典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720521/