【问题标题】:TypeError: 'int' object is not iterable " What am I doing wrong? "TypeError: 'int' object is not iterable “我做错了什么?”
【发布时间】:2019-07-08 07:53:38
【问题描述】:

一个简单的程序,用于计算给定列表数量的相同索引元素的平均值并打印结果。例如,如果 -

def avg(L1, L2, L3):

    res = []

    for i in L1:
        for j in L2:
            for k in L3:
                res.append((i+j+k)/3)
                break

L1 = [1, 7, 9]
L2 = [2, 3, 8]
L3 = [4, 5, 10]


for elt in map(avg, L1, L2, L3):
    print(elt)

输出:TypeError:'int' 对象不可迭代

【问题讨论】:

    标签: python iterator python-3.6


    【解决方案1】:

    问题是,函数avg() 需要来自map() 的3 个列表。但是map() 不是这样工作的,而是从每个可迭代对象中提供一个元素,即int。你可以试试这段代码:

    def avg(*items):
        return sum(items) / len(items)
    
    L1 = [1, 7, 9]
    L2 = [2, 3, 8]
    L3 = [4, 5, 10]
    
    
    for elt in map(avg, L1, L2, L3):
        print(elt)
    

    打印:

    2.3333333333333335
    5.0
    9.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 2016-02-18
      • 2022-11-02
      • 1970-01-01
      • 2018-06-29
      相关资源
      最近更新 更多