【发布时间】:2011-09-30 21:40:34
【问题描述】:
我有一个这样的字符串列表:
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"]
Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1 ]
使用 Y 中的值对 X 进行排序以获得以下输出的最短方法是什么?
["a", "d", "h", "b", "c", "e", "i", "f", "g"]
具有相同“键”的元素的顺序无关紧要。我可以使用for 构造,但我很好奇是否有更短的方法。有什么建议吗?
【问题讨论】:
-
在绘制数据时,riza 的答案可能很有用,因为 zip(*sorted(zip(X, Y), key=lambda pair: pair[0])) 返回排序后的 X 和 Y用 X 的值排序。