最短代码
[x for _,x in sorted(zip(Y,X))]
例:
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1]Z = [x for _,x in sorted(zip(Y,X))]print(Z) # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
一般来说
[x for _, x in sorted(zip(Y,X), key=lambda pair: pair[0])]
解释:
zip
两个list
。- 创建一个新的,list基于zip使用排序sorted()。
- 使用列表推导从排序的,压缩的中提取每对的第一个元素list。



