Python内置函数 — sort,sorted,reversed

1、sort

列表的属性方法,list.sort()方法可以对列表进行排序,默认升序,返回None值。

源码注释:

"""
Sort the list in ascending order and return None.

The sort is in-place (i.e. the list itself is modified) and stable (i.e. the
order of two equal elements is maintained).

If a key function is given, apply it once to each list item and sort them,
ascending or descending, according to their function values.

The reverse flag can be set to sort in descending order.
"""

语法结构:

list.sort(key=None, reverse=False)

参数:

  • key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
  • reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)

返回值:

  • 返回 None值

(1)升序排序(默认升序)

lst = [1, 4, 5, 3, 2]
lst.sort()
print(lst)
-------------------------------------------------------------------------------------
运行结果:
[1, 2, 3, 4, 5]

(2)降序排序

lst = [1, 3, 4, 2, 5]
lst.sort(reverse=True)
print(lst)
---------------------------------------------------------------------------------
运行结果:
[5, 4, 3, 2, 1]

(3)使用key自定义排序

lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort()
print(lst)
------------------------------------------------------------------------------------
运行结果:
[[1, 2], [2, 3], [3, 4], [4, 1]]

说明:默认是根据二维列表的第一个元素升序排序,下面我们来使用key这个参数来实现根据二维列表的第二个元素排序。

lst = [[1, 2], [3, 4], [4, 1], [2, 3]]
lst.sort(key=lambda x: x[1])
print(lst)
-----------------------------------------------------------------------------------
运行结果:
[[4, 1], [1, 2], [2, 3], [3, 4]]

2、sorted

Python内置函数,sorted()函数可以对可迭代对象进行排序,默认升序,返回一个排序后的新列表。

源码注释:

"""
Return a new list containing all items from the iterable in ascending order.

A custom key function can be supplied to customize the sort order, and the
reverse flag can be set to request the result in descending order.
"""

语法格式:

sorted(iterable, key=None, reverse=False)

参数:

  • iterable,可迭代对象
  • key,可选参数,默认值为None。如果key有值,则按照key的函数规则对列表进行排序,可以用来自定义排序规则。
  • reverse,可选参数,排序规则,reverse = True 降序 , reverse = False 升序(默认)

返回值:

  • 返回一个排序后的新列表

用法实例:

(1)升序排序(默认排序)

a = [1, 4, 5, 3, 2]
b = sorted(a)
print('a=', a)
print('b=', b)
------------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [1, 2, 3, 4, 5]

sorted函数没有改变原列表a,按照升序排序生成了一个新的列表b 。

(2)降序排序

a = [1, 4, 5, 3, 2]
b = sorted(a, reverse=True)
print('a=', a)
print('b=', b)
---------------------------------------------------------------------------------
运行结果:
a= [1, 4, 5, 3, 2]
b= [5, 4, 3, 2, 1]

(3)使用key自定义排序

lst = [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new = sorted(lst, key=lambda x: x[1], reverse=True)
print('lst=', lst)
print('lst_new=', lst_new)
-------------------------------------------------------------------------------------
运行结果:
lst= [('b', 2), ('a', 1), ('d', 4), ('c', 3)]
lst_new= [('d', 4), ('c', 3), ('b', 2), ('a', 1)]

(4)将列表中的元素按照绝对值大小排序

lst = [-5, -2, 1, 3, 4]
print(sorted(lst, key=lambda x: abs(x)))
---------------------------------------------------------------------------------------
运行结果:
[1, -2, 3, 4, -5]

3、sort和sorted的区别

  • sort函数是列表的属性方法,sorted是Python的内置函数。
  • sort函数是对原列表的元素进行排序,sorted函数是对可迭代对象的元素进行排序,生成一个新列表。

4、reversed

Python内置函数,reversed()函数可以反转序列,返回一个迭代器对象,只单纯的反转元素,不去重,不排序。

源码注释:

 """ Return a reverse iterator over the values of the given sequence. """

语法格式:

reversed(sequence)

参数:

  • sequence,序列

返回值:

  • 反转序列,返回一个迭代器对象,只单纯的反转元素,不去重,不排序。

用法实例:

(1)反转列表

a = [1, 2, 3, 2, 4, 5]
b = list(reversed(a))
print(a)
print(b)
---------------------------------------------------------------------------------
运行结果:
[1, 2, 3, 2, 4, 5]
[5, 4, 2, 3, 2, 1]


reference:

内置函数 — Python 3.8.16 文档

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值