小能豆

如何在 Python 中使用列表中的键和空值初始化字典?

javascript

我想从中得到:

keys = [1,2,3]

更改为:

{1: None, 2: None, 3: None}

有没有一种符合 Python 的方式可以做到这一点?

这是一种很丑陋的做法:

>>> keys = [1,2,3]
>>> dict([(1,2)])
{1: 2}
>>> dict(zip(keys, [None]*len(keys)))
{1: None, 2: None, 3: None}

阅读 26

收藏
2024-09-25

共1个答案

小能豆

dict.fromkeys直接解决问题:

>>> dict.fromkeys([1, 2, 3, 4])
{1: None, 2: None, 3: None, 4: None}

collections.defaultdict这实际上是一种类方法,因此它也适用于字典子类(如)。

可选的第二个参数默认为None,指定要用于键的值。请注意,每个键将使用相同的对象,这可能会导致可变值出现问题:

>>> x = dict.fromkeys([1, 2, 3, 4], [])
>>> x[1].append('test')
>>> x
{1: ['test'], 2: ['test'], 3: ['test'], 4: ['test']}
2024-09-25