假设我有一个字符串,我想用这些值初始化字典键。

alphabet = 'abcdefghijklmnopqrstuvwxyz'

alphabetDict = dict()
for char in alphabet:
    alphabetDict[char] = 0

有更好的方法吗?

最佳答案

您可以使用dict.fromkeys()方法-

>>> s = 'abcdefghijklmnopqrstuvwxyz'
>>> alphaDict = dict.fromkeys(s,0)
>>> alphaDict
{'m': 0, 'p': 0, 'i': 0, 'n': 0, 'd': 0, 'w': 0, 'k': 0, 'y': 0, 's': 0, 'b': 0, 'h': 0, 't': 0, 'u': 0, 'q': 0, 'g': 0, 'l': 0, 'e': 0, 'a': 0, 'j': 0, 'c': 0, 'o': 0, 'f': 0, 'v': 0, 'x': 0, 'z': 0, 'r': 0}

documentation -
FromKeys(序列号[,值])
使用seq中的键和设置为value的值创建新字典。
fromkeys()是返回新字典的类方法。值默认为None
请注意,如果value是可变的,例如list或另一个dict等,则不应使用此选项,因为当调用方法fromkeys()时,该值只计算一次,并且所有键都指向同一对象。
对于不可变类型,可以将其用作值,如intstr等。
另外,您不需要指定salphabet字符串,而是可以使用string.ascii_lowercase。示例-
>>> import string
>>> alphaDict = dict.fromkeys(string.ascii_lowercase,0)
>>> alphaDict
{'m': 0, 'p': 0, 'i': 0, 'n': 0, 'd': 0, 'w': 0, 'k': 0, 'y': 0, 's': 0, 'b': 0, 'h': 0, 't': 0, 'u': 0, 'q': 0, 'g': 0, 'l': 0, 'e': 0, 'a': 0, 'j': 0, 'c': 0, 'o': 0, 'f': 0, 'v': 0, 'x': 0, 'z': 0, 'r': 0}

08-20 03:34