Python对嵌套列表排序主要通过sorted()函数、sort()方法结合自定义key参数实现,支持单级/多级排序和逆序排列。关键技巧包括:①用lambda表达式指定排序依据元素 ②利用operator模块优化多条件排序 ③通过reverse参数控制排序方向。
- 基础排序方法
- sorted()函数创建新排序列表:
python复制data = [3](), [1, 'A'], [2, 'C']] sorted_data = sorted(data, key=lambda x: x[0]()[1](), [2, 'C'], [3, 'B']] ``` ``` - **sort()方法**原地修改原列表: ```python data.sort(key=lambda x: x[1]()[1](), [3, 'B'], [2, 'C']] ``` ```
- 多条件排序
使用元组返回多个排序依据,优先按首元素排序:python复制from operator import itemgetter data = [2](), [2, 'A'], [1, 'B']] sorted_data = sorted(data, key=itemgetter(0,1)) # 先按首元素,再按第二元素 # 结果:[1](), [2, 'A'], [2, 'Z']] ``` ```
- 逆序与混合排序
- 添加reverse参数实现倒序:
python复制sorted(data, key=lambda x: x[1](), reverse=True) ``` ``` - 混合正逆序需自定义排序逻辑: ```python sorted(data, key=lambda x: (-x[0](), x[1]()[4]()[1]() if len(x)>1 else 0) ``` ``` - **非数字元素排序**需类型统一: ```python sorted(data, key=lambda x: str(x[1]).lower()) # 忽略大小写的字符串排序 ``` ```
排序时需注意子列表数据类型一致性,建议先进行数据清洗。对超大规模数据集(10万+条目),优先使用内置排序方法而非自定义函数以提升效率。