Python sorted()函数


sorted() 是 Python 中的一个内置函数,用于对可迭代对象进行排序。这意味着它可以用来排序列表、元组、字典(基于键)以及其他可迭代的对象。 sorted() 函数返回一个新的、排序后的列表,原始输入对象不会被修改(即它是不可变的)。下面是一些关于 sorted() 函数的基本用法和高级特性的详细讲解。

基本用法

sorted(iterable, /, *, key=None, reverse=False)
  • iterable: 需要排序的可迭代对象。
  • key: 如果需要按照指定的方式进行排序,可以传递一个带有单个参数的函数,此函数将被用于从迭代中的每个元素中提取比较的键 (默认为 None)。
  • reverse: 如果设置为 True,则列表元素将以降序被排列,默认为 False (升序)。

示例

基础排序
# 对列表进行升序排序
my_list = [3, 1, 4, 1, 5, 9, 2]
print(sorted(my_list))
# 输出:[1, 1, 2, 3, 4, 5, 9]
使用 reverse 参数
# 对列表进行降序排序
print(sorted(my_list, reverse=True))
# 输出:[9, 5, 4, 3, 2, 1, 1]
使用 key 参数
# 按字符串长度排序
words = ['banana', 'pie', 'Washington', 'book']
print(sorted(words, key=len))
# 输出:['pie', 'book', 'banana', 'Washington']

对字典进行排序

虽然 sorted() 本身不能直接排序字典,但你可以用它来基于字典的键或值进行排序。

# 基于键排序
my_dict = {'a': 3, 'b': 1, 'c': 2}
print(sorted(my_dict))
# 输出:['a', 'b', 'c']

# 基于值排序
print(sorted(my_dict.items(), key=lambda item: item[1]))
# 输出:[('b', 1), ('c', 2), ('a', 3)]

高级用法

sorted()key 参数非常强大,因为你可以传递一个自定义函数来控制排序逻辑。例如,你可以基于对象的某个属性或者更复杂的数据结构中的值来排序。

注意事项

  • sorted() 返回的是一个新列表,原列表不会被改变。
  • 对于不同类型的数据进行排序时要注意,因为不是所有的数据类型都可以直接比较。例如,直接比较字符串和数字会引发错误。

sorted() 是 Python 中一个非常实用的函数,它提供了强大而灵活的方式来排序各种类型的数据。

### 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、付费专栏及课程。

余额充值