Python 如何获取包含元组的两个或多个列表的交集?

Python 如何获取包含元组的两个或多个列表的交集?,python,Python,我想比较两个或更多列表中的元组,并打印出它们的交集。我在每个元组中有25个元素(包括empty),每个列表中的元组计数都会发生变化 到目前为止,我已尝试将两个列表相交,我使用的代码如下所示: res_final = set(tuple(x) for x in res).intersection(set(tuple(x) for x in res1)) output: set() (res和res1是我的列表)希望此示例有助于: import numpy as np np.random.se

我想比较两个或更多列表中的元组,并打印出它们的交集。我在每个元组中有25个元素(包括empty),每个列表中的元组计数都会发生变化

到目前为止,我已尝试将两个列表相交,我使用的代码如下所示:

res_final = set(tuple(x) for x in res).intersection(set(tuple(x) for x in res1))

output:

set()

(res和res1是我的列表)

希望此示例有助于:

import numpy as np
np.random.seed(0)  # random seed for repeatability
a_ = np.random.randint(15,size=(1000,2))  # create random data for tuples
b_ = np.random.randint(15,size=(1000,2))  # create random data for tuples
a, b = set(tuple(d) for d in a_), set(tuple(d) for d in b_)  # set of tuples
intersection = a&b  # intersection
print(intersection)  # result

在代码中,创建随机变量矩阵,然后将行转换为元组。然后我们得到元组集,最后是对您来说很重要的部分,元组的交集。

如果您的输入看起来像这样:

in_1 = [(1, 1), (2, 2), (3, 3)]
in_2 = [(4, 4), (5, 5), (1, 1)]
in_3 = [(6, 6), (7, 7), (1, 1)]
ins = [in_1, in_2, in_3]
然后,我认为您可以使用
itertools.combines
找到成对的交点,然后从它们中获取一个
set
,以删除重复项

from itertools import combinations

intersected = []
for first, second in combinations(ins, 2):
    elems = set(first).intersection(set(second))
    intersected.extend(elems)

dedup_intersected = set(intersected)
print(dedup_intersected)
# {(1, 1)}

MySQL标签是必需的吗?错误是什么,意外的/预期的结果是什么?res和res1是什么?它们是我试图交叉使用的列表。@Triath:如果您给出一些关于
res
res1
外观的示例,回答您的问题会更容易。它不需要是整个数据,只是每个列表中的几个元素。。。理想情况下,使用实际相交的元素。也尝试这种方式,仍然设置输出()。然后没有相交