【发布时间】:2023-02-10 04:26:09
【问题描述】:
给定两个共享元素但大小不同的不同列表,如何根据第一个列表的元素顺序对第二个列表重新排序?例如:
为了:
a = ['a', 'b', 'e', 'z', 'f']
b = ['a', 'f', 'b', 'z', 'g', 'h']
如何将列表 b 重新排序为:
['a', 'b', 'z', 'f', 'g', 'h']
为了:
a = ['a', 'c', 'j', 'r' , 'p']
b = ['b', 'c', 'a']
如何将列表 b 重新排序为:
['a', 'c', 'b']
到目前为止,我试图:
[x for y, x in sorted(zip(a, b))]
但是,我不明白如何控制列表大小不同的事实。我如何根据上述限制重新排序第二个列表?
【问题讨论】:
-
b可以重复吗?那么会发生什么?当a没有重复项时,是否应该将重复项移到末尾?
标签: python sorting data-structures list-comprehension