假设我有一个字符串,我想用这些值初始化字典键。
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()
时,该值只计算一次,并且所有键都指向同一对象。对于不可变类型,可以将其用作值,如
int
、str
等。另外,您不需要指定
s
或alphabet
字符串,而是可以使用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}