python 關於兩個list的交、差、補集 運算


本文主要介紹在Python下求兩個list的交集、並集、差(補)集、對稱差集的方法。首先,總結了實現上述功能主要的兩種方法:1.使用set集合運算符,2.使用set集合的方法(推薦第2種方法)

1. 總結
1.1 求兩個list的交、並、差(補)、對稱差集 - 使用set集合運算符
輸入:

a = [0,1,2,3,4]
b = [0,2,6]
list(set(a) & set(b)) # 使用 "&" 運算求a與b的交集,輸出:[0, 2]
list(set(a) | set(b)) # 使用 "|" 運算求a與b的並集,輸出:[0, 1, 2, 3, 4, 6]
list(set(b) - set(a)) # 使用 "-" 運算求a與b的差(補)集: 求b中有而a中沒有的元素,輸出:[6]
list(set(a) - set(b)) # 使用 "-" 運算求a與b的差(補)集: 求a中有而b中沒有的元素,輸出:[1, 3, 4]
list(set(a) ^ set(b)) # 使用 "^" 運算求a與b的對稱差集,輸出:[1, 3, 4, 6]

輸出:

求交集: list(set(a) & set(b)) 輸出 -> [0, 2]
求並集: list(set(a) | set(b)) 輸出 -> [0, 1, 2, 3, 4, 6]
求差(補)集: list(set(b) - set(a)) 輸出 -> [6]
求差(補)集: list(set(a) - set(b)) 輸出 -> [1, 3, 4]
求對稱差集: list(set(a) ^ set(b)) 輸出 -> [1, 3, 4, 6]

1.2 求兩個list的交、並、差(補)、對稱差集 - 使用set集合的方法 - 高效率
輸入:

a = [0,1,2,3,4]
b = [0,2,6]
list(set(a).intersection(set(b))) # 使用 intersection 求a與b的交集,輸出:[0, 2]
list(set(a).union(b)) # 使用 union 求a與b的並集,輸出:[0, 1, 2, 3, 4, 6]
list(set(b).difference(set(a))) # 使用 difference 求a與b的差(補)集:求b中有而a中沒有的元素,輸出: [6]
list(set(a).difference(set(b))) # 使用 difference 求a與b的差(補)集:求a中有而b中沒有的元素,輸出:[1, 3, 4]
list(set(a).symmetric_difference(b)) # 使用 symmetric_difference 求a與b的對稱差集,輸出:[1, 3, 4, 6]

輸出:

求交集:list(set(a).intersection(set(b)) 輸出 --> [0, 2]
求並集:list(set(a).union(b)) 輸出 --> [0, 1, 2, 3, 4, 6]
求差(補)集: list(set(b).difference(set(a)) 輸出 --> [6]
求差(補)集: list(set(a).difference(set(b))) 輸出 --> [1, 3, 4]
求對稱差集: list(set(a).symmetric_difference(b)) 輸出 --> [1, 3, 4, 6]



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM