注意:我理解这看起来与许多问题类似,但只需等待一秒钟即可完成阅读。
有没有办法按别名对列表进行排序,我们不必以某种方式合并列表?
items = ["a", "b", "c", "d", "e"]
minutes_ago = [1, 3, 2, 5, 4]
结果应该是items
按minutes_ago
列表排序。优化的方法是什么?
我在考虑一些sorted(items, key = lambda ... )
,但后来无法想象如何很好地解决它。
输出:
items = ["a", "c", "b", "e", "d"]
答案 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']