首页 > 编程知识 正文

python switch case语句的用法,python django 视频教程

时间:2023-05-03 15:52:02 阅读:196974 作者:1437

Python 列表有一个内置的 list.sort() 方法可以直接修改列表
还有一个 sorted() 内置函数,它会从一个可迭代对象构建一个新的排序列表

文章目录 一、基本排序二、关键函数三、Operator 函数五、升序和降序六、补充:对于列表按照多种规则排序

一、基本排序 sorted 会返回一个新的已排序的列表,而 list.sort() 方法会直接修改原列表
对于 sorted 属于内置函数,因此不可以像调用列表的 sort 方法那样调用 sorted
sort()方法只是为列表定义,而 sorted() 函数可以接受任何可迭代对象
二、关键函数

list.sort() 和 sorted() 都有一个 key 形参来指定在进行比较之前要在每个列表元素上进行调用的函数。

>>> sorted("This is a test string from Andrew".split(), key=str.lower)['a', 'Andrew', 'from', 'is', 'string', 'test', 'This']

key 形参的值应该是一个函数,它接受一个参数并并返回一个用于排序的键。这种技巧速度很快,因为对于每个输入记录只会调用一次 key 函数。
一种常见的模式是使用对象的一些索引作为键对复杂对象进行排序。例如:

>>> student_tuples = [ ('john', 'A', 15),('知性的信封', 'B', 12),('dave', 'B', 10),]>>> sorted(student_tuples, key=lambda student: student[2]) # sort by age[('dave', 'B', 10), ('知性的信封', 'B', 12), ('john', 'A', 15)]

三、Operator 函数

上面显示的键函数模式非常常见,因此 Python 提供了便利功能,使访问器功能更容易,更快捷。 operator 模块有 itemgetter() 、 attrgetter() 和 methodcaller() 函数

五、升序和降序

list.sort() 和 sorted() 接受布尔值的 reverse 参数。(两者都默认升序排列)
这用于标记降序排序。 例如,要以反向 age 顺序获取学生数据:

六、补充:对于列表按照多种规则排序

list.sort() 和 sorted() 都有一个 key 形参来指定在进行比较之前要在每个列表元素上进行调用的函数。
重要的是这个 key 值是一个函数,经常与 lambda 结合使用
例如:
每行代表一位考生的信息,包括:准考证号 德分 才分,其中准考证号为 8 位整数,德才分为区间 [0, 100] 内的整数,数字间以空格分隔。
考生按德分和才分的总分从高到低排序。当某类考生中有多人总分相同时,按其德分降序排列;若德分也并列,则按准考证号的升序输出。

分析题目需要进行三个排序,需要总分降序,总分同德分降序,德分也同需要准考证号升序

利用lambda 创建匿名函数,降序利用负号解决

num = []for i in range(8): temp = list(map(int,input().split())) num.append(temp)num.sort(key=lambda x:(-(x[1]+x[2]),-x[1],x[0]))for i in num: print(i)

这句的含义就是,首先按照总分排序,总分同按德分排序,德分也同按照学号排序

num.sort(key=lambda x:(-(x[1]+x[2]),-x[1],x[0]))

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。