柠檬楠同学 2022-05-25 19:58 采纳率: 80%
浏览 44
已结题

python函数编程问题

列表[('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排序,也失败了

我想要达到的结果:教的不深,只能自己探索了,希望有人可以帮助一下

  • 写回答

2条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-05-25 21:43
    关注

    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)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月4日
  • 已采纳回答 5月27日
  • 创建了问题 5月25日