查找出现在不同集合中的所有数字对

  • 本文关键字:数字 集合 查找 python
  • 更新时间 :
  • 英文 :


我是新的,所以如果做得不正确,我很抱歉

我正在寻找一种方法来获得所有出现在不同集合中的对(稍后的3个数字(。

示例:

A = (1,2,4,6,7) 
B = (1,4,5,8) 
C = (1,2,8)

我需要得到一个结果,其中:

  • 1,2出现在A和C中
  • 1,4出现在A和B中
  • 1,8出现在B和C中

我试着遍历每一个集合,在所有集合上创建对,然后进行比较,但我不确定这是正确的(有效的(

我正在寻找在python中实现它的正确方法(如果你愿意的话,这是正确的方法(

您必须在python中使用set的交集方法,如下所示:

In [1]: A = {1, 2, 4, 6, 7}
In [2]: C = {1, 2, 8}
In [3]: A.intersection(C)
Out[3]: {1, 2}

试试这个:

from itertools import combinations
A = (1,2,4,6,7) 
B = (1,4,5,8) 
C = (1,2,8)

def get_pairs(sets):
return [set.intersection(set(X), set(Y)) for X, Y in combinations(sets,2)]
print(get_pairs([A, B, C]))

你有一些模块化的东西。

返回:

[{1, 4}, {1, 2}, {8, 1}]

如果你想把它放在一行,它会给出:

import itertools
print([set.intersection(set(X), set(Y)) for X, Y in itertools.combinations([(1,2,4,6,7), (1,4,5,8) , (1,2,8)],2)])

您可以使用;集合交叉点";在Python中。例如

A={1,2,4,6,7}
B={1,4,5,8} 
C={1,2,8}
a=set.intersection(A,C)
b=set.intersection(A,B)
c=set.intersection(B,C)
print("The common in set A&C:",a)
print("The common in set A&B:",b)
print("The common in set B&C:",c)

最新更新