Python-不支持+:“int”和“list”的操作数类型

Python-不支持+:“int”和“list”的操作数类型,python,Python,我试图在一个列表中找到一个列表的平均值。 我的代码: Scores=[['James','Q',3,4,1,5],['Kat','L',3,4,1,2],['Maddy','G',3,5,6,4],['John','K',3,7,6,8],['Filip','NJ',3,8,9,9]] size=len(Scores[3:5]) total=sum(Scores[3:5]) meanAverage=total/size print(meanAverage) 我得到的错误是: total

我试图在一个列表中找到一个列表的平均值。 我的代码:

Scores=[['James','Q',3,4,1,5],['Kat','L',3,4,1,2],['Maddy','G',3,5,6,4],['John','K',3,7,6,8],['Filip','NJ',3,8,9,9]]
size=len(Scores[3:5])
total=sum(Scores[3:5])
meanAverage=total/size
print(meanAverage)
我得到的错误是:

    total=sum(Scores[3:5])
TypeError: unsupported operand type(s) for +: 'int' and 'list'

您需要在列表上循环,并尝试对子列表的最后4项应用sum函数:

>>> [sum(i[3:5])/4 for i in Scores]
[1.25, 1.25, 2.75, 3.25, 4.25]
但请注意,如果要获取数字,则需要[2:6]切片:

>>> [(i[2:6]) for i in Scores]
[[3, 4, 1, 5], [3, 4, 1, 2], [3, 5, 6, 4], [3, 7, 6, 8], [3, 8, 9, 9]]
>>> [sum(i[2:6])/4 for i in Scores]
[3.25, 2.5, 4.5, 6.0, 7.25]

您需要在列表上循环,并尝试对子列表的最后4项应用sum函数:

>>> [sum(i[3:5])/4 for i in Scores]
[1.25, 1.25, 2.75, 3.25, 4.25]
但请注意,如果要获取数字,则需要[2:6]切片:

>>> [(i[2:6]) for i in Scores]
[[3, 4, 1, 5], [3, 4, 1, 2], [3, 5, 6, 4], [3, 7, 6, 8], [3, 8, 9, 9]]
>>> [sum(i[2:6])/4 for i in Scores]
[3.25, 2.5, 4.5, 6.0, 7.25]

分数[3:5]是从列表中查找一个片段。你想要的是分数[0][3:5]之类的东西

scores[3:5]正在从列表中查找一个片段。你想要的是分数[0][3:5]之类的东西

最小复制:0+[],其中0是默认的总和累加器值。这没有道理。返回并查看数据,即切片的结果。最小复制:0+[],其中0是默认的总和累加器值。这没有道理。返回并查看数据,即切片的结果。小数输出的平均值是否正确?看起来不是这样。@UserIsMe是第一个,因为i[3:5]的长度是2除以4,不能得到平均值!!!您需要使用第二种解决方案!谢谢你,卡斯拉!解决了我的问题。小数输出的平均值正确吗?看起来不是这样。@UserIsMe是第一个,因为i[3:5]的长度是2除以4,不能得到平均值!!!您需要使用第二种解决方案!谢谢你,卡斯拉!解决了我的问题。