gpt4 book ai didi

Python - 查找列表中列表的平均分数

转载 作者:太空宇宙 更新时间:2023-11-04 10:26:39 24 4
gpt4 key购买 nike

我正在尝试使用 lambda 查找列表中列表的平均分数。

Scores=[['James','Q',3,4,1,5],['Kat','S',3,4,1,2],['John','G',3,5,6,4]['Erikson','G',3,7,6,8],['Filip','NJ',3,8,9,9]]
sortedScores=sorted(Scores,key=lambda score:avg(score[3:],reverse=False))

for i in Scores:
print(i[0:1],avg(i[3:]))

avg 不是命令,那么在此代码中计算平均值的最佳方法是什么?

最佳答案

你忘记了一个逗号,仅此而已:

Scores=[
['James','Q',3,4,1,5],
['Ryan','G',3,4,1,2],
['Klodiano','G',3,5,6,4]['Erikson','G',3,7,6,8],
# ^^
['Filip','NJ',3,8,9,9]
]

没有逗号,列表 ['Klodiano','G',3,5,6,4] 正在被索引,但是您传入的不是整数,而是元组 ('Erikson','G',3,7,6,8)

请注意,您的 sorted() 列表也有一个错误:

sortedScores=sorted(
Scores,
key=lambda score:avg(score[3:],reverse=False))
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

您将 reverse=False 传递给 avg() 可调用对象,而不是 sorted()。你可能想要:

sortedScores=sorted(
Scores,
key=lambda score:avg(score[3:]),
reverse=False)

相反。

如果你想单独打印每个学生的名字,你不需要切片;你会改用索引:

for i in Scores:
print(i[0], avg(i[3:]))

最后,GCSE programming problem您正在实现要求最后 3 个分数,而不是除第一个分数之外的所有分数。您需要使用 -3 对最后 3 个分数进行切片以计算平均值:

avg(score[-3:])

关于Python - 查找列表中列表的平均分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28994723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com