[英]Python 3.4 set intersection
我試圖理解為什么我運行此代碼時交集不返回空列表。
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-多個列表的交集?
將第一組與其余列表進行比較時,為什么無法獲得正確的結果?
*n[:1]
解壓縮為(n[0],)
-該集合的第一個元素。
因此,您將n[0]
與自身相交,結果就是您所看到的。 您可能打算寫
set(n[0]).intersection(*n[1:])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.