我是新的,所以如果做得不正确,我很抱歉
我正在寻找一种方法来获得所有出现在不同集合中的对(稍后的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)