如何对Python嵌套列表中的子列表按指定规则排序,不采用按键对齐方式
问题原因
list.sort()是原地排序方法,仅直接修改调用它的列表本身,返回值为None。如果你代码中试图用列表推导式接收返回值(比如result = [i.sort() for i in arr]),得到的会是全为None的列表,自然不符合预期。
正确实现方案
方案1:直接修改原数组
你写的排序逻辑本身是正确的,直接运行即可得到目标结果:
arr = [[2, 3], [5, 1], [4, 1], [5, 3], [4, 2]] for i in arr: i.sort() print(arr) # 输出:[[2, 3], [1, 5], [1, 4], [3, 5], [2, 4]]
方案2:不修改原数组,生成新结果数组
如果需要保留原始数组不变,可以使用内置sorted()函数,它会返回新的排序后列表,不会修改原列表:
arr = [[2, 3], [5, 1], [4, 1], [5, 3], [4, 2]] I_want_arr = [sorted(sub_list) for sub_list in arr] print(I_want_arr) # 输出:[[2, 3], [1, 5], [1, 4], [3, 5], [2, 4]]
内容的提问来源于stack exchange,提问作者siwookJeong
相关产品推荐
相关产品推荐

