python方法和函数拓展 sort sorted
1.sort 与 sorted的区别
sort是对列表本身进行永久性的排序。
sorted则会返回一个排序之后的列表,不会对列表本身进行修改。
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
1 | list = [3,1,2] |
1 | list = [3,1,2] |
2.sort
2.1参数
1 | list.sort(cmp=None, key=None, reverse=False) |
- cmp – 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse – 排序规则,reverse = True 降序, reverse = False 升序(默认)。
2.2key参数的应用
根据列表中指定的元素进行排序
1 | list = [[1,3],[12,1],[32,2]] |
1 | list = [[1,3],[12,1],[32,2]] |
key会把列表的元素作为参数传入后面的函数,然后把函数的返回值作为排序的依据。
2.2.1扩展
如果key接受了两个返回值,那么第一个返回值就会是首要排序依据,如果第一个返回值相等,那么会根据第二个返回值进行排序。
1 | list = [[1,3],[12,1],[32,2],[31,2]] |
2.3reverse参数的应用
reverse = True 降序, reverse = False 升序(默认)。
1 | list = [[1,3],[12,1],[32,2],[31,2]] |
3.sorted
3.1参数
1 | sorted(iterable, cmp=None, key=None, reverse=False) |
- iterable – 可迭代对象。
- cmp – 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
- key – 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse – 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
3.2对key参数的应用
按value值对字典排序
1 | d = {"a":3,"b":1,"c":2} |
3.3对cmp参数的使用(效率key>cmp)
发现在py3中取消了cmp参数,那就不写啦!
3.4reverse
和上面的一样的
4.应用扩展
输入名字(英文),名字在前面形式在后面中间用空格分离,要求根据姓氏排序,姓氏首字母一样就用名字排序,然后输出一个列表,每一个元素装一个名字。
1 |
|