Python 3.x 列表中的python成对交集
有一个集合列表,我想有一个列表,第一个集合与第二个集合相交,第二个集合与第三个集合相交,依此类推。 例如:Python 3.x 列表中的python成对交集,python-3.x,Python 3.x,有一个集合列表,我想有一个列表,第一个集合与第二个集合相交,第二个集合与第三个集合相交,依此类推。 例如: list_of_sets=[set([1,2,3,4,5]),set([1,2,3,5]),set([4,5,6]) meine_liste_len=len(list_of_sets) pairwise_intersection_list=[] for x in range(0,meine_liste_len-1): for y in range(1,meine_liste_
list_of_sets=[set([1,2,3,4,5]),set([1,2,3,5]),set([4,5,6])
meine_liste_len=len(list_of_sets)
pairwise_intersection_list=[]
for x in range(0,meine_liste_len-1):
for y in range(1,meine_liste_len):
pairwise_intersection_list.append(set x.intersection(set(y)))
我想要
pairwise_intersection_list=set(([1,2,3]),([5]))
结果呢
第一个答案非常好,不需要导入模块。另一个(使用zip)是:
pairwiseintersect_list=([i.intersection(j) for i,j inzip(list_of_sets,list_of_sets[1:])
您可以使用范围(0,len(集合的列表)-1)
获取列表中除最后一个成员之外的所有成员的索引。那么两个相邻的集合就是index和index+1。将其与列表理解结合使用,您将获得
>>> list_of_sets=[set([1,2,3,4,5]),set([1,2,3,5]),set([4,5,6])]
>>> new_list = [list_of_sets[i] & list_of_sets[i+1] for i in range(0, len(list_of_sets)-1)]
>>> new_list
[{1, 2, 3, 5}, {5}]
出了什么问题?您希望最终结果是包含多个列表的单个集合?列表不是可哈希的,所以这是行不通的。考虑发布一个运行示例(或者尽可能接近)。例如,
meine\u liste\u len
不存在。如果我要发布一个解决方案,我必须弄清楚这些变量是什么,并将它们添加进去。你应该为我们做这项工作。最终的结果不会是[1,2,3,5],[5]?@tdelaney我有一个问题,它甚至不会计算出正确的东西。谢谢你!我甚至不知道在函数中可以使用“&”。