Python中计算元组列表内各元组第二个元素的平均值问题
解决计算元组列表第二个元素平均值的TypeError问题
嘿,我来帮你捋清楚这个问题!你之前用sum(n for _, n in structure)给元组列表里每个元组的第二个元素求和,运行得都很正常,但计算平均值的时候却碰上个头疼的错误:TypeError: unsupported operand type(s) for /: 'float' and 'list'。
问题根源
这个错误说白了就是:你用来做除数的「元素总数」根本不是整数,而是一个列表!你提到的示例列表[1000, 900.84, 500, 1240.11],估计是你误把它当成了除数,但Python里float和列表是没法直接做除法运算的,自然就报错了。
正确的实现方式
你需要用元组列表structure的长度来当除数,也就是len(structure),它会返回列表里元组的个数(整数)。直接看代码:
分步写法
# 先求和 total_sum = sum(n for _, n in structure) # 再算平均值,用列表长度做除数 average = total_sum / len(structure)
一行简写
average = sum(n for _, n in structure) / len(structure)
举个实际例子,如果你的structure是:
structure = [('item1', 1000), ('item2', 900.84), ('item3', 500), ('item4', 1240.11)]
运行上面的代码,就能得到正确的平均值啦。
内容的提问来源于stack exchange,提问作者J.Doe
相关产品推荐
相关产品推荐

