根据另一个列表的排序将转换应用于列表

p01*_*14k 1 python sorting

我有两个清单;

A = ['red', 'green', 'blue', 'white', 'black']
B = ['22', '34', '7', '3', '850']
Run Code Online (Sandbox Code Playgroud)

我想将列表B从最大值排序到最小值,然后根据应用于列表B的转换对列表A进行排序.这是;

A = ['black', 'green', 'red', 'blue', 'white']
B = ['850', '34', '22', '7', '3']
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 5

最简单的方法是将它们压缩在一起,按第二个组件对它们进行排序,然后将它们解压缩:

ab = zip(A, B)
ab.sort(key=lambda values: int(values[1]), reverse=True)
A, B = zip(*ab)
Run Code Online (Sandbox Code Playgroud)