以下代码片段能否以某种方式简化为一个语句?
Sheet
我可以编写一个接受promptUserForName
,if aKey not in aDict:
aDict[aKey] = [someValue]
else:
aDict[aKey].append(someValue)
和aDict
的函数,但是有没有办法只使用本机python的东西呢?
答案 0 :(得分:5)
collections.defaultdict
的目的只是为了这个目的:
In [1]: import collections
In [2]: d = collections.defaultdict(list)
In [3]: d['key'].append(1)
In [4]: d
Out[4]: defaultdict(<type 'list'>, {'key': [1]})
In [5]: d['key'].append(2)
In [6]: d
Out[6]: defaultdict(<type 'list'>, {'key': [1, 2]})
在这里,当您访问不存在的密钥时,它会自动使用空列表初始化。