一个简单的程序,用于计算给定数量的列表中相同索引的元素的平均值并打印结果。例如,如果-
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'对象不可迭代
答案 0 :(得分: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