如何基于一个列表的排序规则对Python中多个关联列表同步排序
嵌套列表关联排序实现方案
实现核心逻辑是先将原列存储的结构转置为行存储,按门店号排序后再转回原列存储结构即可,全程不需要引入第三方库。
首先你的原始数据结构参考定义:
raw_data = [ ['Store number', 2, 3, 4, 1, 5], ['Variable 1', 82, 99, 44, 32, 65], ['String 1', 'cat', 'dog', 'lizard', 'alligator', 'crocodile'] ]
完整实现代码:
# 提取所有列的表头 headers = [col[0] for col in raw_data] # 提取所有列的数值部分 col_values = [col[1:] for col in raw_data] # 转置为行结构,按每行第一个元素(门店编号)升序排序 sorted_rows = sorted(zip(*col_values), key=lambda item: item[0]) # 转置回列结构,拼接表头得到最终结果 sorted_data = [ [header] + list(col) for header, col in zip(headers, zip(*sorted_rows)) ]
执行后输出的sorted_data就是你需要的目标结构:
[ ['Store number', 1, 2, 3, 4, 5], ['Variable 1', 32, 82, 99, 44, 65], ['String 1', 'alligator', 'cat', 'dog', 'lizard', 'crocodile'] ]
内容的提问来源于stack exchange,提问作者loganherzog4
相关产品推荐
相关产品推荐

