兩個集合的差集是什么 python怎么求兩個列表的交集?
python怎么求兩個列表的交集?方法1遍歷B1。如果元素也存在于B2中,則返回如下復(fù)制代碼:B1=[1,2,3]B2=[2,3,4]B3=[Val for Val in B1 If Val in B
python怎么求兩個列表的交集?
方法1遍歷B1。如果元素也存在于B2中,則返回如下復(fù)制代碼:B1=[1,2,3]B2=[2,3,4]B3=[Val for Val in B1 If Val in B2]print B3。運行結(jié)果如下:[2,3]方法2將列表轉(zhuǎn)換為集合,使用集合運算符計算交集,然后將其轉(zhuǎn)換回列表類型。復(fù)制代碼如下:B1=[1,2,3]B2=[2,3,4]B3=list(set(B1)&set(B2))print B3。運行結(jié)果如下:復(fù)制代碼如下:[2,3,4],3]在前面的方法3示例中,這兩個列表是簡單的單元素列表。另一種特殊情況是嵌套類型的復(fù)制代碼如下:B1=[1,2,3]B2=[[2,4],[3,5
B3=[filter(lambda x:x in B1,sublist)for sublist in B2]print B3。復(fù)制代碼如下:[2,3]
python怎么求兩個列表的交集?
標題等價于:假設(shè)有N個集合A1,A2,A3,…,an,如何找到A1∩A2∩A3∩。。?!砂?。
有三種解決方案:
1。根據(jù)正常優(yōu)先級從左到右:
首先計算A1∩A2的值,假設(shè)該值等于S1,然后計算S1∩A3的值,依此類推,直到得到sn-1∩an的值,這是所有集合交集的結(jié)果。
2. 利用交換律和結(jié)合律來改變優(yōu)先權(quán)來計算:
在這N個集合中,首先比較容易找到兩個集合的交集,所以我們可以先找出它們的交集,假設(shè)s,然后看哪一對s和集合的其余部分比較容易找到交集等等,直到所有集合都匹配為止最終值是所有集合交集的結(jié)果。
3. 遞歸解決方案:事實上,它是上述兩種方法的變體。N個集合的交集可視為函數(shù)f,其參數(shù)為N個集合,簡稱f(N):則N-1個集合的交集可以按同一個函數(shù)求解,但參數(shù)不同——N-1個集合,簡稱f(N-1),假設(shè)解為s;然后s和集的其余部分找到交集是函數(shù)f的結(jié)果,函數(shù)f的參數(shù)是N個集。有了這個遞歸表達式,就可以通過計算機編程來求解。