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]
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
同样,集合的确切实现取决于您考虑顺序和事物唯一性的哪个元素。