首页 > 解决方案 > 2 个列表的排序标准

问题描述

我有两个清单:

a = [2,3,1,4]
b=[two, three, one, four] 

我需要按升序对第一个列表进行排序,但我需要第二个列表(由字符串组成)遵循相同的排序。也就是说,我希望得到以下结果:

a = [1,2,3,4]
b = [one, two, three, four]

有没有人有一个简单的方法来做到这一点?

标签: pythonlistsorting

解决方案


aa, bb = zip(*sorted(zip(a, b)))

顺便说一句,您需要引用第二个列表中的项目,除非这些是变量引用。

内部 zip 将两个列表放在一个元组中:

[(2, 'two'), (3, 'three'), (1, 'one'), (4, 'four')]

sorted 进行排序。元组按它们的第一个键排序:

[(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]

外部 zip & * 运算符的用法是“解压缩列表”pythonic 技巧。


推荐阅读