有没有办法将字典的所有值设置为零?

时间:2012-11-22 08:50:21

标签: python

例如,我有一个ASCII字符列表,想要用一个零列表来压缩它们,这些零列表等于ASCII列表中的字符数,

像:

    import string

    a = string.printable
    #Gives all ASCII characters as a list ^
    b = zeroes * len(a)
    c = zip(a,b)

那样的东西?

5 个答案:

答案 0 :(得分:11)

你可以使用词典理解:

{ x:0 for x in string.printable}

答案 1 :(得分:8)

有一种标准方法:

mydict = dict.fromkeys(string.printable, 0)

或者,如果你需要一个元组列表(说实话,Martijn的版本更加pythonic,但只是为了变化):

import itertools
tuples = zip(string.printable, itertools.repeat(0))

答案 2 :(得分:2)

只需使用列表理解:

c = [(i, 0) for i in a]

答案 3 :(得分:1)

它可能对您没有帮助,但如果您打算使用字典计算,则可以使用defaultdict

from collections import defaultdict
my_dict = defaultdict(int)

默认情况下,任何键都设置为0。

>>> print my_dict['a']
    0

答案 4 :(得分:0)

如果你需要一个清单,也许就是这样:

import string
c = zip(string.printable, [0]*len(string.printable))