python列表如何重新排序
时间: 2024-10-27 13:13:50 浏览: 20
Python中可以使用多种方法对列表进行重新排序。以下是几种常见的排序方法:
1. **内置函数** `sort()`:这个方法直接作用于原列表,对列表内容进行就地排序。例如:
```python
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort() # 升序排列
print(numbers) # 输出:[1, 1, 3, 4, 5, 9]
```
2. **内置函数** `sorted()`:它返回一个新的排序后的列表,原始列表保持不变。如果需要保持原地排序,可以将结果赋值回原变量:
```python
numbers = [3, 1, 4, 1, 5, 9]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 输出:[1, 1, 3, 4, 5, 9]
numbers = sorted_numbers # 现在numbers也是升序排列
```
3. **自定义排序函数**:`sort()` 和 `sorted()` 都支持传入一个函数作为关键字参数,用于定义排序规则。比如按字符串长度排序:
```python
words = ['apple', 'banana', 'cat']
words.sort(key=len)
print(words) # 输出:['cat', 'apple', 'banana']
```
4. **列表推导式** 或者 `reverse()` 方法结合索引操作(适用于简单的倒序):
```python
numbers = [3, 1, 4, 1, 5, 9]
numbers.reverse() # 反转
print(numbers) # 输出:[9, 5, 1, 4, 1, 3]
# 如果只取前半部分,可以用切片
first_half_sorted = sorted(numbers[:len(numbers)//2])
print(first_half_sorted) # 输出:[1, 1, 3, 4]
```
阅读全文