假设我有一个字符串"abcdefghijklmnopqrstuvwxyz"
并且我想用这些值初始化字典键。
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}
fromkeys(seq[, value])
Create a new dictionary with keys from seq and values set to value.
fromkeys()
is a class method that returns a new dictionary. value defaults toNone
.
请注意,如果 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}
关于python - 将字符串中的每个字符转换为字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32816104/