根据较大列表的顺序对列表进行排序
我有一个有序列表:
ordering = ["red", "green", "blue", "yellow", "orange"]
和一个较小的无序列表,我想根据这个列表进行排序:
unordered = ["blue", "orange", "red"]
给出结果:
["red", "blue", "orange"]
这似乎是已经被问到的那种问题,但我已经完成了所有我能找到的类似措辞的问题,但没有一个能解决这个问题。
回答
sort()有一个参数可以让你编写一个排序函数。您可以按如下方式使用此排序功能:
unordered.sort(key=lambda x: ordering.index(x))