一、List取交集和並集
List是Python裏面非常常見的數據類型,但是在對大型List進行操作的時候,往往需要進行一些集合運算,比如取交集和並集。Python提供了很多內置的方法幫助我們完成這些操作。下面我們分別來看一下取交集和並集的方法。
1、兩個list取交集
list1 = ['a', 'b', 'c', 'd'] list2 = ['c', 'd', 'e', 'f'] intersection = list(set(list1) & set(list2)) print(intersection)
以上代碼就是利用Python的內置方法set,在list1和list2中分別取出重複的元素(也就是交集),然後利用&運算符將它們合併為一個新的List。
2、兩個list取並集
list1 = ['a', 'b', 'c', 'd'] list2 = ['c', 'd', 'e', 'f'] union = list(set(list1) | set(list2)) print(union)
以上代碼同樣是利用Python的內置方法set,先將list1和list2分別轉為set類型,去掉重複元素後合併(也就是並集),然後再將合併後的結果轉回List類型。
二、兩個list集合取並集和交集
除了上述的情況,有時候,我們還需要將兩個list對象合併成一個新的List,並去掉重複的元素(也就是並集)。同時,我們也需要找出兩個List之間的交集。下面我們分別來看一下如何實現。
1、兩個list對象取並集
list1 = ['a', 'b', 'c'] list2 = ['b', 'c', 'd', 'e'] union = list(set().union(list1, list2)) print(union)
上述代碼中,我們首先需要利用Python的內置方法set將list1和list2轉為set類型,並將它們合併到一個空set中。然後利用list方法將新的集合轉為List類型。這樣,我們就可以得到兩個list對象的並集了。
2、兩個list對象取交集
list1 = ['a', 'b', 'c'] list2 = ['b', 'c', 'd', 'e'] intersection = list(set(list1).intersection(set(list2))) print(intersection)
同樣地,我們需要使用Python的內置方法set將list1和list2轉為set類型,然後利用intersection方法取出兩個集合之間的交集。最後,我們再將結果轉為List類型。
三、兩個list取交集的Python代碼
為了方便大家查閱,我們將上面的兩個list取交集的Python代碼放在下面。
list1 = ['a', 'b', 'c', 'd'] list2 = ['c', 'd', 'e', 'f'] intersection = list(set(list1) & set(list2)) print(intersection)
四、兩個list對象取交集的高效率
有時候,我們需要計算的集合可能非常大,而如果採用上面的set方法可能會導致效率很低。在這種情況下,我們可以使用Python內置的intersection方法來完成這項工作。下面我們來看一下如何使用這個方法。
1、兩個list對象取交集
list1 = ['a', 'b', 'c'] list2 = ['b', 'c', 'd', 'e'] intersection = list(set(list1).intersection(set(list2))) print(intersection)
如上代碼所示,我們可以使用intersection方法來獲取兩個list對象之間的交集。這個方法比較高效,尤其是在對大型集合進行運算時。
五、兩個list對象取差集
除了並集和交集之外,我們還需要經常對兩個集合進行差集運算。具體來說,這個運算是指從一個集合中移除另一個集合中的項。下面我們來看一下如何實現。
1、list取差集
list1 = ['a', 'b', 'c', 'd'] list2 = ['c', 'd', 'e', 'f'] diff = list(set(list1) - set(list2)) print(diff)
在這個例子中,我們希望獲取在list1中,但是不存在於list2中的元素。為了實現這個目標,我們需要使用set方法將list1和list2轉為set類型。然後,我們利用’-‘符號,從list1中減去list2中的元素。最後,我們再將結果轉為List類型。
2、兩個list對象取差集
list1 = ['a', 'b', 'c'] list2 = ['b', 'c', 'd', 'e'] diff = list(set(list1).difference(set(list2))) print(diff)
除此之外,我們還可以使用difference方法來獲取兩個list對象之間的差集。同樣地,我們需要使用set方法將list1和list2轉為set類型,然後使用difference方法計算差集。最後,我們再將結果轉為List類型。
六、總結
在Python的標準庫中,有很多方便快捷的方法可以實現集合運算。不管是取交集還是取並集,都可以用Python的set方法輕鬆完成。如果你需要計算兩個大型集合之間的交集或者並集,那麼推薦使用Python內置的intersection和union方法,這兩個方法的效率比set高效得多。
原創文章,作者:HIVD,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/149000.html