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)
它可以正常工作。为什么会失败?
答案 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')]