码迷,mamicode.com
首页 > 编程语言 > 详细

Python_Tips[3] -> 排序函数

时间:2018-01-07 14:05:15      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:若是   直接   可选参数   tip   自带   元组   body   变化   roman   

排序函数 / Sort Function


 

list自带的sort函数可以实现对列表的排列功能,具有同样功能的还有sorted函数。

基本形式

列表有自己的sort方法,其对列表进行原址排序,既然是原址排序,那显然元组不可能拥有这种方法,因为元组是不可修改的。sort函数是基于原有的列表进行修改,因此若是需要备份原始列表则可以通过列表的切片实现(若是直接赋值则被赋值列表会跟随原始列表变化)。

1 # List built-in function, sort
2 x = [4, 2, 5, 3, 8, 3]
3 
4 # Slice up the list x, then generate a new list y
5 y = x[:]
6 x.sort()
7 print(x) # [2, 3, 3, 4, 5, 8]
8 print(y) # [4, 2, 5, 3, 8, 3]

而sorted函数与sort的功能类似,但sorted不仅可以操作列表,还可以操作字符串与字典等,操作字典时返回的是字典键值的排序列表。

1 y = sorted(y) # [2, 3, 3, 4, 5, 8]
2 
3 z = sorted(python) # [‘h‘, ‘n‘, ‘o‘, ‘p‘, ‘t‘, ‘y‘]
4 z = sorted({3: c, 4: w, 1: c}) # [1, 3, 4]

可选参数

sort和sorted函数可选的参数主要有两个,key和reevrse,其中key提供一个在排序过程中每次都会调用的函数,reverse则确定排序的大小顺序。

1 # key parameter
2 x = [mmm, m, mmmm, mmmmm, mm] 
3 x.sort(key=len) # [‘m‘, ‘mm‘, ‘mmm‘, ‘mmmm‘, ‘mmmmm‘]
4 sorted(x, key=len) # [‘m‘, ‘mm‘, ‘mmm‘, ‘mmmm‘, ‘mmmmm‘]
5 
6 # reverse parameter
7 x = [3, 2, 1, 6, 4] 
8 x.sort(key=int, reverse=True) # [‘6‘, ‘4‘, ‘3‘, ‘2‘, ‘1‘]
9 sorted(x, key=int, reverse=False) # [‘1‘, ‘2‘, ‘3‘, ‘4‘, ‘6‘]

 

参考链接


http://www.jb51.net/article/52730.htm

Python_Tips[3] -> 排序函数

标签:若是   直接   可选参数   tip   自带   元组   body   变化   roman   

原文地址:https://www.cnblogs.com/stacklike/p/8227605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!