Python TypeError:“int”对象不可编辑“我做错了什么?”

Python TypeError:“int”对象不可编辑“我做错了什么?”,python,iterator,python-3.6,Python,Iterator,Python 3.6,一个简单的程序,用于计算给定数量列表中相同索引元素的平均值并打印结果。例如,如果- 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]

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

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需要映射中的3个列表。但map不是这样工作的,而是从每个iterable中提供一个元素,即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