gpt4 book ai didi

python - 按分配为值的列表中的最高数字对字典中的数据进行排序? Python

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:47 25 4
gpt4 key购买 nike

我如何引用分配给字典形式的键的列表中的第一个、第二个和第三个元素?字典是一个学生的名字,上面有一个分配给它的列表,上面有他们的分数。我如何引用该列表中的每个分数,以便我可以删除较小的分数,然后根据这些分数计算平均值并打印出来.字典看起来像这样

{'Student Example ': [5, 2], 'Student Name ': [2], 'Another Student ': [1]}

虽然我尝试使用的代码看起来像

    viewscores = input ("Would you like to view the scoreboards? (Yes/No): ")
if viewscores == "Yes":
classview = int (input ("What class board would you like to view? (1,2 or 3): "))
print ("Sort class",classn,"scoreboard: ")
print ("1. Alphabetically by students highscore")
print ("2. By high score, highest to lowest")
print ("3. By average score, highest to lowest")
sorting = int (input("Enter sort type: (1,2 or 3): "))

if classview == 1:
if sorting == 1:
highscores = ((k, classone[k]) for k in sorted(classone, key=classone.get, reverse=True))
for k, v in highscores:
listnum = len(v)
while listnum > 1:
if (v[1]) < (v[0]):
del (v[1])
print (v,k)

我得到错误:

Traceback (most recent call last):
File "C:\Users\emily_000\Desktop\test task 3 part two.py", line 116, in <module>
if (v[1]) < (v[0]):
IndexError: list index out of range

我怎样才能引用列表的索引,以便从中找到最高分,然后排序(从最高到最低,并按字母顺序)。那么我该如何引用它们,以便我可以计算出分数的平均值并按这个数字进行组织?使用 python 3.3.4

这是一个学校项目,你能解释一下它是如何工作的,这样我就可以理解了,谢谢你的帮助

最佳答案

关于你的第一个问题:

averagescores = {}
for k, v in highscores.items():
averagescores[k] = float(sum(v))/float(len(v))

上面的代码将对所有分数进行平均,并将它们放入一个名为“averagescores”的新字典中。

关于你的第二个问题,默认情况下字典是无序的。不过,您可以获得字典的有序表示作为元组:

import operator
sortedscores = sorted(averagescores.items(), key=operator.itemgetter(1))

这将按值从小到大对分数进行排序。

关于python - 按分配为值的列表中的最高数字对字典中的数据进行排序? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28840959/

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