首页 > 解决方案 > Python:“int”对象在嵌套枚举(列表)中不可迭代

问题描述

我正在尝试遍历列表 b的每个元素:

a = [1, 2, 3, 4]
b = [1, 2, 3, 4]

for cnt1, a in enumerate(a):
    print ("a:",cnt1, a)
    for cnt2, b in enumerate(b):
        print ("b:", cnt2, b)

但是,对于 a 的第二次迭代,我总是在内部循环中得到一个“ TypeError: 'int' object is not iterable”。

预期
a:0 1
b:0 1
b:1 2
b:2 3
b:3 4
a:1 2
b:0 1
...
b:3 4
a:2 3
...

实际
a: 0 1
b: 0 1
b: 1 2
b: 2 3
b: 3 4
a: 1 2
TypeError: 'int' object is not iterable at: for cnt2, b in enumerate(b):

标签: pythonenumerate

解决方案


正如 Iain 在评论中指出的那样,您正在重新定义a并且b在循环中,这将解决问题。

a = [1, 2, 3, 4]
b = [1, 2, 3, 4]

for cnt1, ele1 in enumerate(a):
    print ("a:",cnt1, ele1)
    for cnt2, ele2 in enumerate(b):
        print ("b:", cnt2, ele2)

推荐阅读