函数介绍:
在对列表排序的时候,常用到sort()和sorted()的方法。
sorted()是python的内置函数,可以排序的对象有列表、元组、字典、字符串。sorted不改变原对象的值,排序后的对象类型全部为list。
sort是列表类的方法,只对列表有用。不返回值,直接在列表上操作,会改变原对象的值。
语法及参数:
L.sort(cmp=None, key=None, reverse=False)
sorted(iterable, cmp=None, key=None, reverse=False)
- cmp :可选参数, 如果指定了该参数会使用该参数的方法进行排序。
- key : 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
- reverse :排序规则,reverse = True 降序, reverse = False 升序(默认)
- iterable:列表元素
- sort()方法没有返回值,直接改变元素
举例:
sort():
# 根据ASCII码顺序排序
>>> List = ['123', 'Google', 'Runoob', 'Taobao', 'Facebook']
>>> List.sort()
>>> List
['123', 'Facebook', 'Google', 'Runoob', 'Taobao']
# 逆序排序
>>> List.sort(reverse=True)
>>> List
['Taobao', 'Runoob', 'Google', 'Facebook', '123']
# 元组元素排序
>>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]
>>> items.sort()
>>> items
[(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]
# 指定第二个元素排序
>>> def takeSecond(elem): # 返回第二个元素
return elem[1]
>>> random = [(2, 2), (3, 4), (4, 1), (1, 3)]
>>> random.sort(key=takeSecond) # 调用函数
>>> random
[(4, 1), (2, 2), (1, 3), (3, 4)]
sorted():
其余用法个sort()相同
>>> a = [1,25,2,5,4,3,6]
>>> b = sorted(a) # 排序后不改变对象啊
>>> a
[1, 25, 2, 5, 4, 3, 6]
>>> b
[1, 2, 3, 4, 5, 6, 25]
>>>