python - 将字符串中的每个字符转换为字典键

标签 python string dictionary

假设我有一个字符串"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}

来自 documentation -

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 to 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}

关于python - 将字符串中的每个字符转换为字典键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32816104/

相关文章:

Python,Numpy - 尝试根据条件拆分数组

检查 int 是否不是 alpha

python - 基于匹配列的映射值 - Python

java - for 循环的字符替换方法的问题

javascript - 如何创建递归对象树数组以供以后迭代?

javascript - 如何从对象数组中查找名称属性

javascript - 显示用户相对时区的 UTC 时间戳的时间

python - 查找困在列表中的字符数

python - 如何检查安装在 osx 和 centos 上的所有 python 版本

java - 将字符串数据 append (添加)到 Android 应用程序中的 SD 卡文本文件