【问题标题】:Python: "int" object is not iteratable in nested enumerate(list)Python:“int”对象在嵌套枚举(列表)中不可迭代
【发布时间】:2019-12-28 17:44:43
【问题描述】:

我正在尝试遍历 list 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)

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

预期
答:0 1
b: 0 1
乙:1 2
乙:2 3
b: 3 4
答:1 2
b: 0 1
...
b: 3 4
答:2 3
...

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

【问题讨论】:

  • 您在 for 循环中重新定义了变量 ab。 "对于 cnt1,a 在 ..."
  • 你为什么要用循环变量隐藏你正在迭代的列表?
  • Python 的for 循环本质上是foreach 循环。他们分配给变量。在第二次迭代中,a 已经是列表a 的一个元素。 enumerate-ing 整数 (enumerate(a)) 没有任何意义

标签: python enumerate


【解决方案1】:

正如 Iain 在 cmets 中指出的那样,您正在循环中重新定义 ab,这将解决问题。

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)

【讨论】:

    猜你喜欢
    • 2023-03-07
    • 2015-03-24
    • 2018-03-19
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 2015-04-14
    • 2022-07-01
    相关资源
    最近更新 更多