Python 3.4 设置交集

Python 3.4 set intersection

我试图理解为什么当我 运行 这段代码时我的交叉点没有 return 一个空列表。

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)

但是这 return 是正确的集合

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?

当我将第一个列表与其余列表进行比较时,为什么我得不到正确的结果?

*n[:1] 解包为 (n[0],) - 集合的第一个元素。

所以你与自身相交 n[0],结果就是你所看到的。你可能打算写

set(n[0]).intersection(*n[1:])