按字符排序字典(值)

时间:2017-05-16 21:18:57

标签: python dictionary

students_grade是一个包含元组的列表,每个元组都有一个学生姓名和一个成绩,两者都是一个字符串。 例如:

students_grade = [('jon','88'), ('bran', '100'), ('arya','93'), ('dan', '88')]

目标是创建一个新的列表,其中包含按等级排序的相同元组:

[('jon','88'), ('dan', '88',' ('arya','93'),('bran','100')]

尝试使用字典解决它,但我发现'100' < '93'返回True,所以我尝试按int(values)对字典进行排序,但得到了TypeError

dic = {}
for i in students_grades:
    dic[i[0]] = i[1]
sorted_keys = sorted(dic.keys(), key = int(dic.get), reverse=True)

没有int(dic.get)它可以正常工作。为什么会失败?

1 个答案:

答案 0 :(得分:1)

普通字典没有订单概念,无论如何你不需要它来对列表进行排序。试试这个:

x = [('jon', '88'), ('bran', '100'), ('arya', '93'), ('dan', '88')]
sorted(x, key=lambda pair: int(pair[1]))
=>  [('jon', '88'), ('dan', '88'), ('arya', '93'), ('bran', '100')]