Python如何按子列表的第二个值对嵌套列表进行排序?
Python列表按子列表指定位置值排序实现方案
你需要的按子列表第二个值降序排序的逻辑,可以直接通过Python内置的排序方法实现,不需要额外手写循环排序逻辑。
可运行代码示例
# 注:x/y/z需要替换成你实际业务中对应的变量值,以下为演示用定义 x, y, z = "x", "y", "z" lst = [[x, 5], [y, 1], [z, 6]] # 方式1:直接修改原列表,无返回值 lst.sort(key=lambda sub_item: sub_item[1], reverse=True) print(lst) # 输出结果:[['z', 6], ['x', 5], ['y', 1]],和预期结果完全一致
如果不想改动原始列表,可以用sorted()生成新的排序列表:
sorted_lst = sorted(lst, key=lambda sub_item: sub_item[1], reverse=True)
参数说明
key:用来指定排序的取值规则,这里lambda sub_item: sub_item[1]表示取每个子列表索引为1的元素(Python索引从0开始计数,索引1对应第二个值)作为排序依据reverse=True:指定排序规则为降序排列,默认不传该参数时是从小到大升序排列,不符合6、5、1的排序顺序要求
注意事项
使用前请确认所有子列表长度都不小于2,否则取sub_item[1]时会触发索引越界错误。
内容的提问来源于stack exchange,提问作者BlackCode
相关产品推荐
相关产品推荐

