列表[('tom',60),('jerry',70),('ken',65),('robbort',79)],记录了学生的python、课程成绩,按照数据库成绩进行排序。
对于[('tom',60,80),('jerry',70,80),('ken',65,90),('robbort',79,60)],记录了学生的python、数据库两门课程成绩;按照总成绩成绩进行排序。
这两道题不会,初学python
第一题:错误代码
def score(list=[]):
list.sort(key=lambda i:list[i][1])
return list
print(score(list1))
我的解答思路和尝试过的方法 :第一题想着把key锁定在list[][1]里面让他以成绩排序,但是失败了
第二题想着list][]1]+list[][2]作为key排序,也失败了
我想要达到的结果:教的不深,只能自己探索了,希望有人可以帮助一下
lambda表达式不正确,参数只要放列表里面的元素就可以了,不需要再用索引
# 第一题
a=[('tom',60),('jerry',70),('ken',65),('robbort',79)]
a.sort(key=lambda x:x[1])
print(a)
# 第二题
b=[('tom',60,80),('jerry',70,80),('ken',65,90),('robbort',79,60)]
b.sort(key=lambda x:x[1]+x[2])
print(b)
建议可以对该列表中的小元组进行两次看待,就是说对于这个元组的两个,分别进行一次看待,如果这个元组的数字大于后面的就可以交换,第二个问题同理,我可能说的不太准确,希望这些能够帮助到你,如果实在不会我可以发源代码给你