如何用列表中的键创建字典,并将值默认设置为零?

193 投票
5 回答
266554 浏览
提问于 2025-04-16 05:03

我有一个列表 a = [1,2,3,4],我想要一个字典 d = {1:0, 2:0, 3:0, 4:0}

d = dict(zip(q,[0 for x in range(0,len(q))]))

这样做是可以的,但看起来不太好。有没有更简洁的方法?

5 个回答

20

在Python 2.7及以上版本,以及Python 3中:

d = {el:0 for el in a}
224
d = dict.fromkeys(a, 0)

a 是一个列表,0 是默认值。要注意,不要把默认值设置成一些可变的对象(比如列表或字典),因为这样的话,字典里的每个键都会使用同一个对象作为值(想了解这种情况的解决办法,可以查看这里)。数字和字符串是安全的。

261

dict((el,0) for el in a) 这个写法很好用。

Python 2.7 及以上版本也支持一种叫做字典推导式的写法。这个写法是 {el:0 for el in a}

撰写回答