列表排序
2023-09-14 08:59:05 时间
列表排序
https://www.cnblogs.com/whaben/p/6495702.html
1、简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序。
>>> sorted([5, 2, 3, 1, 4]) [1, 2, 3, 4, 5]
2、你也可以使用list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的list,此方法将更有效。
>>> a = [5, 2, 3, 1, 4] >>> a.sort() >>> a [1, 2, 3, 4, 5]
延伸:
l = [2, 1, 3] print(l) print("==========排序==========") # sorted()函数 递减排序 print(sorted(l, reverse=True)) # sort() 递增排序 l.sort(reverse=False) print(l)
输出:
[2, 1, 3]
==========排序==========
[3, 2, 1]
[1, 2, 3]
3、复杂情况下的排序:sorted和lambda
例1:
假如a是一个由元组构成的列表,这时候就麻烦了,我们需要用到参数key,也就是关键词,看下面这句命令,lambda是一个隐函数,是固定写法,不要写成别的单词;x表示列表中的一个元素,在这里,表示一个元组,x只是临时起的一个名字,你可以使用任意的名字;x[0]表示元组里的第一个元素,当然第二个元素就是x[1];所以这句命令的意思就是按照列表中第一个元素排序
a = [('b', 4), ('a', 0), ('c', 2), ('d', 3)] b = sorted(a, key=lambda x: x[0]) print(b)
输出:
[('a', 0), ('b', 4), ('c', 2), ('d', 3)]
例2:
将列表按照下列规则排序:
1. 正数在前,负数在后
2. 正数从小到大
3. 负数从大到小
- 例子:
- 排序前:[7,-8,5,4,0,-2,-5]
- 排序后:[0, 4, 5, 7, -2, -5, -8]
alist = [7, -8, 5, 4, 0, -2, -5] blist = sorted(alist, key=lambda x: (x < 0, abs(x))) # 这里排序条件返回元组,先比较第一个,再第二个值 print(blist)
输出:
[0, 4, 5, 7, -2, -5, -8]
相关文章
- python_字典列表嵌套的排序问题
- lua sort排序_python中列表排序的用法
- 【说站】python列表排序的两种方式
- 一张图解析 FastAdmin 中的表格列表
- HTML之图像,表格,列表,区块(笔记小结)
- 【HTML】HTML 列表 ( 无序列表 | 有序列表 | 自定义列表 )
- WordPress 技巧:后台文章列表添加排序选项
- HTML 标签列表(字母排序)
- 解析Redis:快速入门Redis列表数据结构(listredis)
- HTML 标签列表(字母排序)
- HTML 标签列表(功能排序)
- Linux查看服务状态:一招鲜(linux 查看服务列表)
- Redis命令攻略列表(列出redis命令)
- MySQL下拉列表的设计与应用(mysql 下拉列表)
- Redis中利用跳跃列表实现超高效率排序(redis 跳跃列表)
- 研究Redis跳跃列表的原理(redis跳跃列表原理)
- javascriptselect列表内容按字母倒序排序与按列表倒序排列
- jQuery源码分析笔记(2)变量列表
- listview控件实现点击列表头进行listview排序示例分享
- Python中字典(dict)和列表(list)的排序方法实例