python中sort与sorted的区别
时间: 2024-03-11 21:19:19 浏览: 76
Python中,`sort()`和`sorted()`都是用于对列表进行排序的方法,但它们之间有一些区别:
`sort()`是一个原地排序的方法,它会直接修改原来的列表,并返回`None`。这意味着,原来的列表将被改变,而不是创建一个新的排序后的列表。
`sorted()`是一个非原地排序的方法,它不会修改原来的列表,而是返回一个新的排序后的列表。这意味着,原来的列表不会被改变,而是创建一个新的排序后的列表。
另外,`sort()`和`sorted()`都可以接受一个可选的`key`参数,用于指定一个函数来在排序中使用。`key`函数接受一个元素并返回一个用于排序的键,从而在排序时按照这些键进行排序。例如,可以使用`key`参数按字符串长度排序。
示例:
```python
# sort()示例
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
a.sort()
print(a) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# sorted()示例
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a)
print(a) # [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(b) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# key参数示例
a = ['apple', 'banana', 'cherry', 'date', 'elderberry']
a.sort(key=len)
print(a) # ['date', 'apple', 'banana', 'cherry', 'elderberry']
```
阅读全文