我有一个这种格式的文件:
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)
