【问题标题】:Looping over multiple lists with enumerate使用枚举遍历多个列表
【发布时间】:2020-04-22 13:45:35
【问题描述】:

看起来 enumerate 和 zip 在 Python 3 中不能一起使用?

alist = ['a1', 'a2', 'a3']
blist = ['b1', 'b2', 'b3']

for i, a, b in enumerate(zip(alist, blist)):
    print(i, a, b)

返回 'int' 对象不可调用

【问题讨论】:

    标签: python zip enumerate


    【解决方案1】:

    a,b 周围添加()。值的解包是针对 enumerate 函数,它返回大小为 2 的元组:索引和值。如果您还想解开价值项目,那么如下:

    for i, (a, b) in enumerate(zip(alist, blist)):
        print(i, a, b)
    

    【讨论】:

    • 我已经试过了,'TypeError: 'int' object is not callable'
    • @Alexxxx01 - 关于您发布的代码?因为我完全使用了您提出的问题并添加了() 并且它有效
    • 我的错:在 PyCharm 中它起作用了。我重新启动了木星,它很好....
    • @Alexxxx01 - 太棒了:)
    【解决方案2】:

    由于zip返回元组,你也可以这样做:

    for i, t in enumerate(zip(alist, blist)):
        print(i, t[0], t[1])
    

    或者:

    for i, t in enumerate(zip(alist, blist)):
        print(i, *t)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2011-09-01
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 2016-06-08
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多