如何在Python中对嵌套数组内的子数组排序(无需外部库)
Python 实现嵌套数组中子数组的逐个排序
你可以用以下几种原生Python方法实现需求,无需依赖外部库:
方法1:列表推导式(生成新数组)
这是最简洁的写法,通过sorted()函数对每个子数组排序,生成新的嵌套数组:
x = [[0,-1],[0,2],[7,4],[1,5],[6,3],[2,6]] x = [sorted(sub) for sub in x] # 结果:[[-1,0],[0,2],[4,7],[1,5],[3,6],[2,6]]
sorted()会返回排序后的新列表,不会修改原有的子数组,最终生成一个全新的嵌套数组。
方法2:原地修改原数组
如果希望直接修改原数组而不创建新对象,可以使用列表的sort()方法(原地排序),配合循环遍历每个子数组:
x = [[0,-1],[0,2],[7,4],[1,5],[6,3],[2,6]] for sub_list in x: sub_list.sort() # 此时原x已被修改为目标结果
sort()方法会直接在原列表上进行排序操作,不需要额外的内存存储新数组。
方法3:使用map函数
也可以用map()将sorted()映射到每个子数组,再转换为列表:
x = [[0,-1],[0,2],[7,4],[1,5],[6,3],[2,6]] x = list(map(sorted, x)) # 结果与方法1一致
这种写法和列表推导式逻辑等价,适合偏好函数式风格的场景。
内容的提问来源于stack exchange,提问作者Pippomuc
相关产品推荐
相关产品推荐

