sort()函数
list.sort(key=None, reverse=False)
# key 表示用来比较的参数,一般二维列表时会用到
# reverse = True 表示降序, reverse = Flase 表示升序(默认为升序
>>> nums=[2,1,3]
>>> nums.sort()
>>> print(nums.sort()) # 由于nums.sort()表示的是一个运算过程,并不返回列表,所以输出为None
None
>>> print(nums)
[1, 2, 3]
>>> nums.sort(reverse=True)
>>> print(nums)
[3, 2, 1]
>>> nums=[[1,2],[3,4],[2,3]]
>>> nums.sort(key= lambda x: x[0]) # lambda 匿名函数 定义按照子列表的第一个元素进行优先排序
>>> print(nums)
[[1, 2], [2, 3], [3, 4]]
>>> nums.sort(key= lambda x:x[1],reverse=True) # 定义按照子列表中的第二个元素进行优先排序
>>> print(nums)
[[3, 4], [2, 3], [1, 2]]
sorted()函数
sorted(literable, key=None, reverse=False)
#literable 表示一个可迭代对象
# key 表示用来比较的参数,一般二维列表时会用到
# reverse = True 表示降序, reverse = Flase 表示升序(默认为升序)
>>> nums=[2,1,3]
>>> print(sorted(nums))
[1, 2, 3]
sorted() 函数和sort()函数功能基本一致,相关操作参考sort()函数代码
sort() 和 sorted() 的区别
·sort()函数是列表自带的操作,只能对列表进行操作,并且是在原列表上操作
·而sorted()函数是对包括列表的所有可迭代对象(元组、数组、集合等)进行操作,不改变原可迭代对象,返回一个新的排序好的列表(注意所有可迭代对象经过sorted()后返回的都是列表)
>>> nums=[2,1,3]
>>> sorted(nums)
[1, 2, 3]
>>> print(nums) # sorted 不会改变原列表
[2, 1, 3]
>>> nums.sort()
>>> print(nums) # sort 直接改变原列表
[1, 2, 3]
>>> nums=(2,1,3)
>>> nums.sort() # sort 不适用于列表以外的对象
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
nums.sort()
AttributeError: 'tuple' object has no attribute 'sort'
>>> sorted(nums) # sorted 可以对任意对象操作
[1, 2, 3]