简洁地填写字典

Har*_*ekh 1 python

我有这种格式的文件:

1,abc
1,def
2,abc
3,abc
3,def
Run Code Online (Sandbox Code Playgroud)

我正在将此文件加载到这样的字典中:

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]}
Run Code Online (Sandbox Code Playgroud)

它加载成功,输出是(我想要的):

{'1': {'abc', 'def'}, '2': {'abc'}, '3': {'abc', 'def'}}
Run Code Online (Sandbox Code Playgroud)

是否可以将if / else条件写在一行中?如果是这样,怎么办?

关于如何使这段代码简洁的任何其他想法?

Mar*_*rat 5

内置collections模块只有东西,defaultdict

from collections import defaultdict

d = defaultdict(set)
datareader = csv.reader(open(filename, "r"))

for key, value in datareader:
    d[key].add(value)
Run Code Online (Sandbox Code Playgroud)