Python的sorted()函数简介

本文详细介绍了Python内置函数sorted的基本用法,包括参数iterable、cmp、key、reverse的作用,以及如何使用lambda表达式进行自定义比较。通过多个示例演示了如何对列表进行排序,并在不同场景下应用这些参数和lambda表达式。

>>> help(sorted)
Help on built-in function sorted in module __builtin__:

sorted(...)
    sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list

---------------------------------------------------------------------------------------------------------
iterable  可迭代的数据类型
cmp   用于比较的函数
key  关键字  用于比较的数据
reverse   True反转  Flase 不反转
--> new sorted list    返回一个新的列表
默认参数可以 赋值抑或不赋值
---------------------------------------------------------------------------------------------------
基本示例:
>>> list=[3,5,4,2,1]
>>> print sorted(list)
[1, 2, 3, 4, 5]
 
参数 reverse:
>>> print sorted(list,reverse=True)
[5, 4, 3, 2, 1]
>>> print sorted(list,reverse=False)
[1, 2, 3, 4, 5]
 
参数  key:
>>> list=[('b',2),('a',1),('c',5),('d',4),('c',3)]
>>> print sorted(list,key=lambda x:x[0])
[('a', 1), ('b', 2), ('c', 5), ('c', 3), ('d', 4)]
>>> print sorted(list,key=lambda x:(x[0],x[1]))
[('a', 1), ('b', 2), ('c', 3), ('c', 5), ('d', 4)]
 
参数 cmp:
>>> print sorted(list,cmp=lambda x,y:cmp(x[0],y[0]))
[('a', 1), ('b', 2), ('c', 5), ('c', 3), ('d', 4)]
>>> print sorted(list,cmp=lambda x,y:cmp(x[1],y[1]))
[('a', 1), ('b', 2), ('c', 3), ('d', 4), ('c', 5)]
 
相关介绍:
lambda:
         python中的lambda表达式:   lambda表达式是python中一类比较特殊的声明函数的方式,lambda来源于LISP语言,类似与def。
使用它可以声明一个匿名函数,所谓匿名函数是指声明的函数没有函数名,lambda就是一个简单的函数。
使用lambda声明的函数返回一个值,调用函数直接使用匿名函数(lambda声明的函数)的返回值。
lambda声明函数的一般形式:lambda  参数列表:表达式
eg:>>> fun=lambda x:x*x
>>> fun(4)
16
>>> fun=lambda x,y:(x+y)
>>> fun(3,5)
8
lambda适用于定义小型函数,与def声明的函数不同,使用lambda声明的函数,在函数中仅包含单一的参数表达式,而不能包含其他的语句
### Python `sorted()` 函数详解 `sorted()` 是 Python 中的一个内置函数,能够对任何可迭代的对象进行排序并返回一个新的已排序列表[^1]。 #### 参数说明 该函数接受三个参数: - **iterable**: 可迭代对象,如列表、元组或集合等。 - **key (optional)**: 一个用来指定排序依据的一元函数,默认为 None。 - **reverse (optional)**: 布尔值,如果设置为 True,则按降序排列;默认情况下为 False 表示升序排列[^2]。 #### 返回值 总是返回一个新的列表,其中包含了按照特定顺序排列的元素副本。原始序列不会被修改。 #### 实际应用实例 以下是几个使用 `sorted()` 的具体例子来展示如何利用这些特性: ```python # 对简单的整数列表进行排序 numbers = [5, 2, 9, 1, 7] print(sorted(numbers)) # 输出: [1, 2, 5, 7, 9] # 使用 key 参数自定义排序逻辑 words = ['apple', 'banana', 'cherry'] print(sorted(words, key=len)) # 按字符串长度排序: ['apple', 'cherry', 'banana'] # 设置 reverse=True 来实现降序排序 scores = [(80, 'Alice'), (95, 'Bob'), (88, 'Charlie')] print(sorted(scores, key=lambda item: item[0], reverse=True)) # 根据分数高低排序后的结果: [(95, 'Bob'), (88, 'Charlie'), (80, 'Alice')] # 排序字典项基于键或值 from operator import itemgetter d = {'a': 3, 'b': 1, 'c': 2} print(sorted(d.items(), key=itemgetter(1))) # 按照字典值从小到大排序: [('b', 1), ('c', 2), ('a', 3)] ``` 通过上述代码片段可以清楚看到 `sorted()` 如何灵活应用于不同类型的数据结构之上,并且可以通过调整参数来自由控制排序行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值