【发布时间】:2015-01-28 14:03:13
【问题描述】:
从How do I create a dictionary with keys from a list and values defaulting to (say) zero? 构建 尤其是this answer:
如何使用列表中的键和值分隔空列表来创建字典?
(稍后,我将能够附加元素)
【问题讨论】:
标签: python list dictionary
从How do I create a dictionary with keys from a list and values defaulting to (say) zero? 构建 尤其是this answer:
如何使用列表中的键和值分隔空列表来创建字典?
(稍后,我将能够附加元素)
【问题讨论】:
标签: python list dictionary
使用字典理解,
{item: [] for item in my_list}
您只是在迭代列表并为每个键创建一个新列表。
或者,你可以考虑使用collections.defaultdict,像这样
from collections import defaultdict
d = defaultdict(list)
for item in my_list:
d[item].append(whatever_value)
在这里,我们传递给defaultdict 的函数对象是主要的。如果字典中不存在键,它将被调用以获取值。
【讨论】:
这是简单易行的实现,它是自我解释的,我们遍历列表中的所有元素并在字典中为每个值创建一个唯一的条目,并用一个空列表对其进行初始化
sample_list = [2,5,4,6,7]
sample_dict = {}
for i in sample_list:
sample_dict[i] = []
【讨论】:
按常规方法:
>>> l = ["a", "b", "c"]
>>> d = {}
>>> for i in l:
... d[i] = []
...
>>> d
{'a': [], 'c': [], 'b': []}
>>>
通过使用collections 模块
>>> l = ["a", "b", "c"]
>>> import collections
>>> d = collections.defaultdict(list)
>>> for i in l:
... d[i]
...
[]
[]
[]
>>> d
defaultdict(<type 'list'>, {'a': [], 'c': [], 'b': []})
【讨论】: