有以下问题。我从stdin阅读数据并将其保存在列表中,我以如下方式将其转换为元组:
x = int(input())
f = []
for i in range(x):
a, b = map(int, input().split())
f.append([a,b])
def to_tuple(lst):
return tuple(to_tuple(i) if isinstance(i, list) else i for i in lst)
在这之后,我收到两个元组,看起来像这样:
f = ((0, 1), (1, 2), (0, 2), (0, 3))
s = (((0,), (1, 2, 3)), ((0, 1), (2, 3)), ((0, 1, 2), (3,)))
我试图做的是找出f
的所有内部元组与s
的每个元组之间的交集的数目。(因此在f
中,我们具有所有可能的“边”,并且检查在s
的特定元组中的内部元组之间是否将存在边)。因此,对于示例,它应该输出[3,2,1]
。
基本上,我知道在简单的交集情况下如何做-所以可以只使用set()
,然后应用a.intersection(b)
,但是在我的情况下,我应该如何进行呢?
非常感谢和抱歉,如果这个问题已经问过了:=)
2条答案
按热度按时间g6ll5ycj1#
这是一个如何继续的示例
piv4azn72#
我相信这可以用不同方法解决,但我相信这是最简单的。