Python 中 sort() 与sorted() 函数

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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值