我试图理解为什么我的交集在运行此代码时不返回空列表。
n = ([1,2,3,4,5],[3,4,5,6],[5,6,7],[7,8,9,10,11,12],[10,22,33,44,45])
w = set(n[0]).intersection(*n[:1])
print(w)
#Returns (1,2,3,4,5)
然而,这会返回正确的集合
n = ([1,2,3,4,5],[3,4,5,6],[5,6,7],[7,8,9,10,11,12],[10,22,33,44,45])
w = set(n[0]).intersection(*n)
print(w)
#Returns empty set.
这个问题给出了两个正确的结果:
Python -Intersection of multiple lists?
为什么在将第一组与剩余列表进行比较时,我得不到正确的结果?
答案 0 :(得分:7)
*n[:1]
解包到(n[0],)
- 该集合的第一个元素。
所以你将n[0]
与自己相交,结果就是你所看到的。你可能打算写
set(n[0]).intersection(*n[1:])