我有这种格式的文件:
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条件写在一行中?如果是这样,怎么办?
关于如何使这段代码简洁的任何其他想法?
内置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)
| 归档时间: |
|
| 查看次数: |
35 次 |
| 最近记录: |