簡體   English   中英

TypeError:“ int”對象不可迭代“我在做什么錯? ”

[英]TypeError: 'int' object is not iterable “ What am I doing wrong? ”

一個簡單的程序,可以計算給定數量的列表的相同索引的元素的平均值,並打印結果。 例如,如果-

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'對象不可迭代

問題在於,函數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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM