将元素添加到集合字典中

Ran*_*lue 2 python

我有d套词典.当在一些关键的添加元素key,我认为这两种情况key in dnot key in d:

from random import randint

for i in range(1000):
    key = randint(0, 100)

    if key in d:
        d[key] |= set([randint(0, 10)])
    else:
        d[key] = set([randint(0, 10])
Run Code Online (Sandbox Code Playgroud)

有更清洁的方法吗?我能统一这两个案子吗?

DSM*_*DSM 6

我喜欢使用defaultdict,这是一种在引用尚未定义的键时创建默认对象的字典:

>>> from random import randint
>>> from collections import defaultdict
>>> 
>>> d = defaultdict(set)
>>> 
>>> for i in range(10):
...     el = randint(0, 5)
...     d[el].add(randint(0,10))
... 
>>> d
defaultdict(<type 'set'>, {0: set([2]), 1: set([7]), 2: set([8, 9, 5, 7]), 
3: set([1]), 4: set([1, 3, 4])})
>>> d[0]
set([2])
>>> d[2]
set([8, 9, 5, 7])
Run Code Online (Sandbox Code Playgroud)