python - 尝试迭代字典时出现类型错误: 'int' 不可迭代

标签 python loops dictionary iteration typeerror

我对 python 有点陌生,我一直在尝试找到一种方法来迭代字典,其键如下:

r_alpha: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z'}

让我们假设以下情况: 我有一个列表,我想查找列表的值是否在字典键中并打印该键的值,但会发生这种情况:

th = [1,2,3]
for item in th:
for keys, values in r_alpha.items():
        if item in keys:
            print(values)

我收到以下错误,指向第 4 行(如果键中有项目:) 类型错误:“int”类型的参数不可迭代

如果我将该列表更改为字符串值,我实际上会得到像这样的字符串值的键:

th = ['a','b','c']
for item in th:
for keys, values in r_alpha.items():
        if item in values:
            print(keys)

打印:1 2 3

有人可以帮助我并告诉我我做错了什么吗?或者如何迭代字典的 int 键以便返回值。

最佳答案

错误的原因是因为您在循环中迭代键,并且在每次迭代时使用 in 运算符将键与其他值进行比较,该运算符用于可迭代的成员资格测试。由于您的键是整数(不是可迭代的),因此这显然不起作用。

<小时/>

当字典支持恒定时间查找时,无需迭代字典的键。

for item in th:
    if item in r_alpha:
        print(r_alpha[item])
a
b
c

或者,您可以使用 dict.get 删除 if 条件。

for item in th:
    print(r_alpha.get(item))
a
b
c

关于python - 尝试迭代字典时出现类型错误: 'int' 不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45992968/

相关文章:

java - 有没有办法输入一个unicode值并输出其各自的字符?

javascript - 现代(2018)浏览器不支持 forEach 吗?

Java - For 循环(do/while)无限重复

python - 如何重新排序字典的键?

python - lxml 在使用简单的自定义解析器时引发 TypeError

python - closeTab 函数它关闭 PyQt5 中的多个选项卡

python - 如何从 Gradle 激活虚拟环境?

python - 删除列表中字符串的所有扩展名

android - SQLite可以处理大量数据吗

Python findall() 起始数字和结束单词