python中sort与sorted函数
时间: 2023-08-20 20:16:05 浏览: 114
在 Python 中,`sort()` 和 `sorted()` 都是用来对列表进行排序的函数,不同之处在于它们的用法和操作方式。
`sort()` 是列表对象的方法,它直接对原列表进行排序,不会创建新的列表,因此使用`sort()`会修改原列表的元素顺序。`sort()`方法可以带有两个参数,即`key`和`reverse`,分别用于指定排序的关键字和排序方式。例如:
```python
lst = [3, 1, 4, 6, 2]
lst.sort() # 默认升序排序
print(lst) # [1, 2, 3, 4, 6]
lst.sort(reverse=True) # 降序排序
print(lst) # [6, 4, 3, 2, 1]
lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key=len) # 按字符串长度排序
print(lst) # ['pear', 'apple', 'banana', 'orange']
```
`sorted()` 是内置函数,它接受一个可迭代对象作为参数,返回一个新的已排序的列表,不修改原列表。和`sort()`一样,`sorted()`也可以带有两个参数,即`key`和`reverse`,用法与`sort()`相同。例如:
```python
lst = [3, 1, 4, 6, 2]
new_lst = sorted(lst) # 升序排序,返回新的列表
print(new_lst) # [1, 2, 3, 4, 6]
print(lst) # [3, 1, 4, 6, 2]
new_lst = sorted(lst, reverse=True) # 降序排序,返回新的列表
print(new_lst) # [6, 4, 3, 2, 1]
print(lst) # [3, 1, 4, 6, 2]
lst = ['apple', 'banana', 'orange', 'pear']
new_lst = sorted(lst, key=len) # 按字符串长度排序,返回新的列表
print(new_lst) # ['pear', 'apple', 'banana', 'orange']
print(lst) # ['apple', 'banana', 'orange', 'pear']
```
阅读全文