根据该值在另一个列表中的出现顺序对列表进行排序

如何根据 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,则对列表元素进行排序,就好像每次比较都颠倒了一样。


以上是根据该值在另一个列表中的出现顺序对列表进行排序的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>