【发布时间】:2016-04-21 18:02:59
【问题描述】:
我想按class1 中的值对score_list 进行排序。
我可以通过简单地对键进行排序来按字母顺序对score_list 进行排序,但我不知道如何按数字从大到小对列表进行排序。
另外,我希望score_list 只存储最后 3 个输入,如果可能的话,我想找到每个学生最后 3 个分数的平均值。
enter code here:
score_list = []
class1 = {}
what_class = input ("what class would you like?")
if what_class == ("1") :
print("class1 results")
student_name =input("name?")
score = input("score?")
choose = input("do you want to entre another student? y,n")
while choose == "y":
student_name =input("name?")
score = input("score?")
score_list.append(score)
choose = input("do you want to entre another score? y,n")
class1.setdefault(student_name,score_list)
if choose == "n":
sorted_names = sorted(class1.keys())
print(class1)
class1_items = class1.items()
print (type(class1_items))
for i in class1_items:
print (i)
如果有人可以帮助我,我将非常感谢它
谢谢你的帮助
[]更好地了解目标:1
enter code here
import heapq
from collections import deque
print("alphabetical(type:A),highest to lowest(type:B),Average(type:C)")
student_name = input("ENTER NAME")
result_type = input ("WHICH TYPE OF RESULTS WOULD YOU LIKE?")
which_class = input ("which class?")
if result_type == ("A") or result_type == ("a"):
print("alphabetical order(type:A)")
if result_type == ("B") or result_type == ("b"):
print("results in highest to lowest.")
score_list = deque(maxlen=3)
scores = input("Please enter your score.")
choose = input("do you want to entre another score? y,n")
while choose != "n":
scores = input("Please enter your score.")
choose = input("do you want to entre another score? y,n")
score_list.append(scores)
if choose != "y" :
print(score_list)
print((student_name)+"'s:"+"lowest to largest"+str(heapq.nsmallest(3, score_list)))
print((student_name)+"'s:"+"largest to lowest"+str(heapq.nlargest(3, score_list)))
if result_type == ("C") or result_type == ("c"):
print("results in average order.")
score_list = deque(maxlen=3)
scores = input("Please enter your score.")
choose = input("do you want to entre another score? y,n")
while choose != "n":
scores = input("Please enter the scores.")
choose = input("do you want to entre another score? y,n")
score_list.append(int(scores))
#print(len(score_list))
#print(sum(score_list))
total = (int(sum(score_list)))
length = (int(len(score_list)))
average= (total)/(length)
if choose != "y" :
print(student_name+"'s "+"average score:"+str(average))
#print("average: " +str(average))
这就是我改进它的方式,我仍然无法弄清楚按字母顺序排序的部分。
【问题讨论】:
标签: python list sorting dictionary average