如何用列表中的键创建字典,并将值默认设置为零?
我有一个列表 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}
。