Python3如何根据二维数组子数组的第二个元素对数组进行排序
Python二维数组按子数组第二个元素排序实现
你可以通过Python内置的排序方法直接实现需求,有两种常用方案:
方案1:sort()原地排序
直接修改原数组,无额外内存开销:
arr = [ ["some_id", 26, "some_id"], ["some_id", 93, "some_id"], ["some_id", 58, "some_id"] ] # key参数指定排序依据为子数组的第二个元素 # *注意Python中索引从0开始计数,因此子数组的第二个元素对应索引为1* arr.sort(key=lambda item: item[1]) # 此时arr已经是排序完成的结果 print(arr)
方案2:sorted()生成新数组
不会修改原数组,会返回独立的排序后数组,适合需要保留原始数据的场景:
arr = [ ["some_id", 26, "some_id"], ["some_id", 93, "some_id"], ["some_id", 58, "some_id"] ] sorted_arr = sorted(arr, key=lambda item: item[1]) # sorted_arr是排序后的新数组,原arr保持不变 print(sorted_arr)
额外说明
- 两种方法默认都是升序排序,如需降序可以添加
reverse=True参数,示例:arr.sort(key=lambda item: item[1], reverse=True) - 如果你后续需要按子数组其他位置的元素排序,修改lambda表达式里的索引值即可
内容的提问来源于stack exchange,提问作者a e
相关产品推荐
相关产品推荐

