Skip to main content
 首页 » 编程设计

python之创建一个字典并添加一个集合作为它的值

2025年05月04日26webabcd

我有一组与键相关的数字。当键不在字典中时,我想将它连同它的值一起添加到 set() 并且它存在,我只想为该键的现有集合添加一个数字。我的做法是这样的:

for num in datasource:     
    if not key in dict.keys(): 
        dict[key] = set().add(num) 
    else: 
        dict[key].add(num) 

但问题在于,当我添加数字 03 时,它会将 0,3,03 添加到集合中,而我真正想要添加的只是 03。

如有任何帮助,我们将不胜感激。

请您参考如下方法:

试试这个,添加新的集合元素作为给定键的值:

d = {} 
d.setdefault(key, set()).add(value) 

或者,使用defaultdict:

from collections import defaultdict 
d = defaultdict(set) 
d[key].add(value) 

任一解决方案都将有效地创建一个 multimap :一个数据结构,对于一个给定的键可以保存多个值——在本例中,在一个 set 中。特别是对于您的示例,这就是您使用它的方式:

d = {} 
for num in datasource: 
    d.setdefault(key, set()).add(num) 

或者:

from collections import defaultdict 
d = defaultdict(set) 
for num in datasource: 
    d[key].add(num)