我有一个列表['a','b','c','d']
。我需要从列表中构建一个dict
,列表中的所有元素都是字典中的键,对于所有元素(例如None
)都有一些默认值。字典构造与列表中的元素
如何做到这一点?我是否需要为此编写一个函数或者是否有可用的构造函数?
我有一个列表['a','b','c','d']
。我需要从列表中构建一个dict
,列表中的所有元素都是字典中的键,对于所有元素(例如None
)都有一些默认值。字典构造与列表中的元素
如何做到这一点?我是否需要为此编写一个函数或者是否有可用的构造函数?
dict.fromkeys(['a','b','c','d'])
将为其所有值返回一个包含None
的字典。
dict.fromkeys(['a','b','c','d'], foo)
将为其所有值返回一个包含foo
的字典。
您可以使用一台发电机迅速将其转换为一个字典:
dict((x, None) for x in L)
(L为您的列表)
导致:
{'a': None, 'c': None, 'b': None, 'd': None}
去看看Gabe的想法。它利用内置功能并且速度更快。 –
如果您需要将词典值设置为单独的对象(尽管具有相同的值),则此方法是适当的。另请参阅OP的后续问题:http://stackoverflow.com/questions/7592592/setting-a-value-to-a-dictionarys-dictionary-value –
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_value
,则默认为None
。
你回答我比我更好。好主意。 –