两个列表之间的公共元素并保留两个列表中元素的顺序

n

我有两个清单list1list2我在stackoverflow上发现了一种非常简单的方法来获取这两个列表中的公共元素,如下所示result = list(set(list1) & set(list2))不幸的是,这样一来,结果列表中元素的顺序就无法保留。

例如:

list1 = ['a', 'e', 't', 'b', 'c']
list2 = ['e', 'b', 'a', 'c', 'n', 's']

我希望结果(公共元素)['e', 'a', 'b', 'c']按此顺序排列。例如,因为“ e”在列表1和列表2中,并且在列表1中的位置2和列表2中的位置1,而“ a”在列表1和列表2中,并且在列表1中的位置1和列表2中的位置3,因为2 + 1 <1 + 3,所以'e'在'a'之前。

那么,是否有任何简单的方法在两个列表之间具有公共元素并保留元素的顺序?

恩普
list1 = ['a', 'e', 't', 'b', 'c']
list2 = ['e', 'b', 'a', 'c', 'n', 's']

weights = defaultdict(int)

for i, e in enumerate(list1):
   weights[e] += i

for i, e in enumerate(list2):
   weights[e] += i

>>> result = sorted(set(list1) & set(list2), key=lambda i: weights[i])
>>> result
['e', 'a', 'b', 'c']

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

列表之间的两个公共元素

来自分类Dev

两个列表之间的重复项/公共元素

来自分类Dev

两个列表之间没有重复的公共元素

来自分类Dev

元素相同的两个列表中的公共元素

来自分类Dev

包含用于比较两个列表中元素的操作

来自分类Dev

两个列表列表之间的公共元素(嵌套列表的交集)

来自分类Dev

比较python中的两个列表,其中元素的顺序不同

来自分类Dev

检查两个列表是否具有公共元素

来自分类Dev

如何从两个列表中检测公共元素?

来自分类Dev

具有顺序限制的两个列表的元素的排列

来自分类Dev

如何在python中检查两个列表之间的公共元素

来自分类Dev

返回列表中两个变量索引之间的元素

来自分类Dev

在列表中的两个元素之间创建链接

来自分类Dev

比较两个列表之间的元素-Haskell

来自分类Dev

优化两个列表之间的元素明智模糊匹配

来自分类Dev

查找两个列表的相应元素之间的差异的索引

来自分类Dev

在两个列表之间找到共同的元素?

来自分类Dev

如何获得两个元素的两个子列表的列表之间的对称差异?

来自分类Dev

两个逻辑向量中元素之间的最小距离

来自分类Dev

两个不同矩阵中元素之间的欧式距离?

来自分类Dev

在python中的两个列表之间交换两个元素

来自分类Dev

传递以映射列表的两个元素

来自分类Dev

匹配列表的前两个元素

来自分类Dev

如何比较两个列表元素?

来自分类Dev

检查两个列表中的元素

来自分类Dev

检查两个列表中的元素

来自分类Dev

从两个列表中过滤元素

来自分类Dev

具有两个元素的列表

来自分类Dev

比较两个不同列表的元素

Related 相关文章

热门标签

归档