我有这行代码,用第一个字母将 list 中的单词组织成 dictionary :
for a in list: dictionary[a[0]].append(a)
问题是,这需要每个字典键都有空列表值。我之前可以通过添加一些额外的代码来实现这一点,但我想知道是否有办法让前一行代码处理这个问题。
这里是伪代码:
dictionary[a[0]]
。 有没有办法可以在一行代码中执行此操作?
答案 0 :(得分:7)
您可以使用defaultdict
,而不必更改您的代码行:
from collections import defaultdict
dictionary = defaultdict(list)
for a in list: dictionary[a[0]].append(a)
答案 1 :(得分:4)
您可以使用collections.defaultdict
>>> import collections
>>> dict_of_lists = collections.defaultdict(list)
>>> dict_of_lists['foo'].append('bar')
>>> print(dict_of_lists)
defaultdict(<class 'list'>, {'foo': ['bar']})
>>>