我有d套词典.当在一些关键的添加元素key,我认为这两种情况key in d和not 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)
有更清洁的方法吗?我能统一这两个案子吗?
我喜欢使用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)
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |