查找2个列表之间的公共元素,而不考虑顺序-python 2

问题描述 投票:1回答:1

Id想找出一种从2个不同的列表中查找所有相似元素的方法

这两个列表都是休假的,

A=[[[a1, b1],
  [a2, b2],
  [a3, b3]],
 [[a1, b2],
  [a2, b1],
  [a3, b3]],
 [[a1, b1],
  [a3, b2],
  [a2, b3]]]

B=[[[a1, b1],
  [a3, b3],
  [a2, b2]],
 [[a1, b2],
  [a2, b1],
  [a3, b3]],
 [[a1, b1],
  [a3, b2],
  [a2, b3]]]

Id认为每个列表的第一个元素都是重复的[[a1, b1],[a2, b2], [a3, b3]][[a1, b1],[a3, b3], [a2, b2]]是重复项。

我正在寻找的输出将是一个单独列表中常见元素之一的列表,

C=[[a1, b1],[a2, b2], [a3, b3]]

我一直在使用此代码,但无法识别它们的前两个元素是重复的,我想知道应该添加些什么。

C=[ i for i in A if i in B]
python list duplicates
1个回答
0
投票

对于无序唯一元素容器,请尝试使用Python集!

https://docs.python.org/3.8/library/stdtypes.html#set

Python集在某种意义上将数学集模型化,因为它们是唯一元素的无序容器。从您的问题中并不能完全清楚您正在考虑重复哪些内容。您可能必须创建集合集,但是要注意,要使集合包含集合,必须使用Frozen_sets。 python文档在描述这些方面做得很好。

所以您的新代码可能看起来像

A = [set([a1,b1],
[a2. b2],
[a3, b3])
set([a1, b2],
[a1, b1],
[a3, b3])
... # And so on

同样,集合的确切实现取决于您考虑顺序和事物唯一性的哪个元素。

© www.soinside.com 2019 - 2024. All rights reserved.