在python中,如果想对list进行排序,最常见的内置函数就是sort()。下面我们对于list函数的sort方法知识点进行列举。
1.描述:
sort() 函数用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
2.调用格式:
list=[1,3,6,5,2]
list.sort( key=None, reverse=False)
3.参数说明:
参数 | 意义 |
key | 排序的依据,默认None,详细解释见下 |
reverse | 降序还是升序。默认False,表示升序排 |
这段代码表示将list的元素以tuple中第二个元素为依据升序排列
list=[(1,9),(2,1),(7,3),(8,6)]
list.sort(key=lambda x:x[1])
#运行结果:[(2,1),(7,3),(8,6),(1,9)]
4.返回值:
无返回值
5.一些奇技淫巧:
将tuple传入sort方法key参数中:表示依次比较大小。
即先比较tuple中第一个元素,若tuple1[0]>tuple2[0],按照tuple1>tuple2处理;若二者相等
对 tuple中第二个元素进行比较,若tuple1[1]>tuple[2],按照tuple1>tuple2处理......
(见第二个实例)
元素比较---------比较第1指数tuple[0]
|
|- if 相等
|
|---比较第2指数tuple[1]
|
|- if 相等
|
|---比较第3指数tuple[2]
|
6.实例:
# 列表
vowels = ['e', 'a', 'u', 'o', 'i']
# 降序
vowels.sort(reverse=True)
# 输出结果
print ( '降序输出:', vowels )
运行结果:
降序输出: ['u', 'o', 'i', 'e', 'a']
dic={'0':1,'1':0,'2':0,'3':0,'4':1,'5':0,'6':1,'7':0,'8':2,'9':1}
def score(a):
return (dic[a],int(a))
list=['6','7','3','8']
list.sort(key=score)
print(list)
运行结果:
['3', '7', '6', '8']
7.参考:
菜鸟教程https://www.runoob.com/python3/python3-att-list-sort.html
蓝桥杯题目:封闭图形https://www.lanqiao.cn/problems/19733/learning/?isWithAnswer=true