Python 使用列表中的元素进行Dict构造

Python 使用列表中的元素进行Dict构造,python,dictionary,Python,Dictionary,我有一个列表['a','b','c','d']。我需要在此列表中构造一个dict,将列表中的所有元素作为dict中的键,并为所有元素设置一些默认值,例如None 怎么做?我是否需要为此编写函数,或者是否有可用的构造函数?您可以使用生成器将其快速转换为字典: dict((x, None) for x in L) (其中L是您的列表) 这导致: {'a': None, 'c': None, 'b': None, 'd': None} 看 dict.fromkeys(['a'、'b'、'c'、'd

我有一个列表
['a','b','c','d']
。我需要在此列表中构造一个
dict
,将列表中的所有元素作为dict中的键,并为所有元素设置一些默认值,例如
None


怎么做?我是否需要为此编写函数,或者是否有可用的构造函数?

您可以使用生成器将其快速转换为字典:

dict((x, None) for x in L)
(其中L是您的列表)

这导致:

{'a': None, 'c': None, 'b': None, 'd': None}

dict.fromkeys(['a'、'b'、'c'、'd'])
将返回一个字典,其中包含所有值的
None

lst = ['a','b','c','d']

# using list comprehension
d = dict([(x, None) for x in lst])

# using fromkeys
d = dict.fromkeys(lst)
dict.fromkeys(['a','b','c','d',foo)
将返回一个字典,其中包含所有值的
foo

您可以尝试:

lst = ['a','b','c','d']

# using list comprehension
d = dict([(x, None) for x in lst])

# using fromkeys
d = dict.fromkeys(lst)
dict.fromkeys(data, default_value)

如果省略
default\u值
,则默认为
None

您的答案我比我更喜欢。好主意,去看看加布的主意。它利用了一个内置函数,并且速度足够快。如果您需要将dict值作为单独的对象(尽管具有相同的值),这种方法是合适的。另见OP的后续问题: