sorted和sort区别
时间: 2023-11-20 18:07:30 浏览: 84
`sorted()` 和 `sort()` 都可以对列表进行排序,但是它们的实现方式和使用方法有所不同。
- `sorted()` 是一个内置函数,它接收一个可迭代对象作为参数,并返回一个新的已排序的列表。`sorted()` 不会修改原始列表,而是返回一个新的已排序的列表。
- `sort()` 是列表的一个方法,它会对原始列表进行排序。`sort()` 会修改原始列表,而不是返回一个新的已排序的列表。
下面是一个例子,演示了 `sorted()` 和 `sort()` 的区别:
```python
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sorted() 对列表进行排序
sorted_numbers = sorted(numbers)
print("sorted():", sorted_numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print("原始列表:", numbers) # 输出: [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sort() 对列表进行排序
numbers.sort()
print("sort():", numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print("原始列表:", numbers) # 输出: [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
```
注意:`sorted()` 和 `sort()` 在排序时都使用了默认的升序排序方式。如果要进行降序排序,可以使用 `sorted()` 和 `sort()` 的 `reverse` 参数,如下所示:
```python
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# 使用 sorted() 对列表进行降序排序
sorted_numbers = sorted(numbers, reverse=True)
print("sorted() 降序排序:", sorted_numbers) # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
# 使用 sort() 对列表进行降序排序
numbers.sort(reverse=True)
print("sort() 降序排序:", numbers) # 输出: [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
```
阅读全文