根据另一个列表列表对列表列表进行排序

Sorting list of lists based on another list of lists

我有一个列表列表,我想按与另一个列表列表相同的顺序排序:

l1 = [['hello', 'test'], ['there', 'correct'], ['Elem3', 'yes']]

l2 = [['hello'], ['Elem3'], ['there']]

所以我想重新排列 l1 使其与 l2 的顺序相同。 (注意:这只是一个简单的测试用例。我正在处理的实际列表中有几个元素。

例如结果应该是:

l1 = [['hello', 'test'], ['Elem3', 'yes'], ['there', 'correct']]

使用python2(企业)

它不是很漂亮或效率不高,但我认为这些不是要求:

>>> l3 = [None] * len(l2)
>>> for item in l1:
...     l3[l2.index([item[0]])] = item
>>> print l3
[['hello', 'test'], ['Elem3', 'yes'], ['there', 'correct']]

使用 python 的内置 sort:

l1.sort(key=lambda pair: l2.index(pair[0]))