如何根据每个子列表的首个元素对列表的列表进行排序?
根据子列表首个元素排序列表的列表
方法1:使用sorted()函数(返回新列表)
sorted()函数支持通过key参数指定排序依据,用lambda表达式提取每个子列表的第一个元素作为排序键即可:
original_list = [[1,4,7],[3,6,9],[2,59,8]] sorted_list = sorted(original_list, key=lambda x: x[0]) print(sorted_list) # 输出: [[1,4,7],[2,59,8],[3,6,9]]
方法2:使用list.sort()方法(原地修改列表)
如果不需要保留原列表,想直接修改原列表的排序状态,用列表自带的sort()方法,同样指定key参数:
original_list = [[1,4,7],[3,6,9],[2,59,8]] original_list.sort(key=lambda x: x[0]) print(original_list) # 输出: [[1,4,7],[2,59,8],[3,6,9]]
额外说明
- 默认是升序排序,要降序的话,添加
reverse=True参数即可,比如:sorted(original_list, key=lambda x: x[0], reverse=True) - 只要子列表的第一个元素是可比较类型(整数、字符串等),这两种方法都能正常工作
内容的提问来源于stack exchange,提问作者creksooscrec
相关产品推荐
相关产品推荐

