根据该值在另一个列表中的出现顺序对列表进行排序
如何根据 B 中的出现顺序对 A 的值进行排序,其中 A 中的值可能是重复的,而 B 中的值是唯一的
A=[1, 2, 2, 2, 3, 4, 4, 5]
B=[8, 5, 6, 2, 10, 3, 1, 9, 4]
预期的列表是 C 应该包含
C = [5, 2, 2, 2, 3, 1, 4, 4]
回答
解决方案:
尝试使用sorted:
C = sorted(A, key=B.index)
现在:
print(C)
输出:
[5, 2, 2, 2, 3, 1, 4, 4]
文档参考:
如文档中所述sorted:
有两个可选参数,必须指定为关键字参数。
key指定一个带一个参数的函数,用于从iterable 中的每个元素中提取比较键(例如,
key=str.lower)。默认值为None(直接比较元素)。reverse是一个布尔值。如果设置为
True,则对列表元素进行排序,就好像每次比较都颠倒了一样。