Skip to main content
 首页 » 编程设计

python之简明填写词典

2025年05月04日18xiaohuochai

我有一个这种格式的文件:

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)