4

例如,我有一个 ASCII 字符列表,并希望用一个等于 ASCII 列表中字符数的零列表来压缩它们,

喜欢:

    import string

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

类似的东西?

4

5 回答 5

11

您可以使用 dict 理解:

{ x:0 for x in string.printable}
于 2012-11-22T08:51:53.887 回答
8

有一个标准方法:

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

或者,如果您需要一个元组列表(老实说,Martijn 的版本更 Pythonic,但只是为了多样化):

import itertools
tuples = zip(string.printable, itertools.repeat(0))
于 2012-11-22T08:53:05.983 回答
2

只需使用列表理解:

c = [(i, 0) for i in a]
于 2012-11-22T08:51:49.760 回答
1

它可能对您没有帮助,但是如果您要使用字典进行计数,则可以使用defaultdict.

from collections import defaultdict
my_dict = defaultdict(int)

然后默认情况下将任何键设置为 0。

>>> print my_dict['a']
    0
于 2012-11-22T08:53:36.563 回答
0

如果你需要一个列表,也许是这样的:

import string
c = zip(string.printable, [0]*len(string.printable))
于 2012-11-22T09:01:53.927 回答