在Python中按列表中的另一个列表排序列表而不合并

时间:2014-11-09 21:20:34

标签: python list sorting

注意:我理解这看起来与许多问题类似,但只需等待一秒钟即可完成阅读。

有没有办法按别名对列表进行排序,我们不必以某种方式合并列表?

items = ["a", "b", "c", "d", "e"]
minutes_ago = [1, 3, 2, 5, 4]

结果应该是itemsminutes_ago列表排序。优化的方法是什么?

我在考虑一些sorted(items, key = lambda ... ),但后来无法想象如何很好地解决它。

输出:

items = ["a", "c", "b", "e", "d"]

1 个答案:

答案 0 :(得分:3)

这是我能想到的最简单的方法:

In [1]: items = ["a", "b", "c", "d", "e"]

In [2]: minutes_ago = [1, 3, 2, 5, 4]

In [3]: [i for m, i in sorted(zip(minutes_ago, items))]
Out[3]: ['a', 'c', 'b', 'e', 'd']