sort()和sorted()的区别
时间: 2023-08-08 19:10:12 浏览: 14
`sort()` 和 `sorted()` 都是 Python 中用于对列表进行排序的函数,它们的区别主要在于:
1. `sort()` 是列表的一个方法,只能用于列表,而 `sorted()` 是一个内置函数,可以对任何可迭代对象进行排序,例如列表、元组、字符串等。
2. `sort()` 在原地对列表进行排序,没有返回值,而 `sorted()` 返回一个新的排序后的列表,原列表不变。
3. `sort()` 可以接受参数,用于指定排序的方式,例如 `key` 参数用于指定排序的关键字,`reverse` 参数用于指定是否降序排列。`sorted()` 也可以接受这些参数,并且还可以接受一个 `cmp` 参数,用于指定比较函数。
下面是一个例子,演示了 `sort()` 和 `sorted()` 的用法和区别:
```python
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sort() 对列表进行排序
a.sort()
print(a) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 使用 sorted() 对列表进行排序
b = sorted(a)
print(b) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 使用 sorted() 对字符串进行排序
c = sorted("hello, world!")
print(c) # 输出 [' ', '!', ',', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
```
在上面的例子中,我们首先定义了一个列表 `a`,然后使用 `sort()` 对其进行排序,再使用 `sorted()` 对其进行排序。可见,`sort()` 直接对原列表进行了排序,而 `sorted()` 返回了一个新的排序后的列表。同时,我们还使用 `sorted()` 对字符串进行了排序,它同样返回了一个新的排序后的列表。
相关推荐

















