我有兩個 list ,如何取出交集的 list ?
在 Python 中,可以使用集合操作來輕鬆取得兩個列表的交集。以下是具體方法:
方法 1: 使用集合 (set
) 的交集運算
list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] # 取交集 intersection = list(set(list1) & set(list2)) print(intersection)
輸出:
[3, 4]
方法 2: 使用列表生成式 (保持順序)
如果希望保留原列表中交集元素的順序:
list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] # 取交集並保持 list1 的順序 intersection = [item for item in list1 if item in list2] print(intersection)
輸出:
[3, 4]
方法 3: 使用 filter
函數 (簡潔寫法)
list1 = [1, 2, 3, 4] list2 = [3, 4, 5, 6] # 取交集 intersection = list(filter(lambda x: x in list2, list1)) print(intersection)
輸出:
[3, 4]
方法比較
- 方法 1: 使用集合,效率高,但無法保證元素的順序。
- 方法 2: 保持原列表中元素的順序,適合有順序需求的場合。
- 方法 3: 簡潔,但可讀性可能稍低。
根據需求選擇適合的方法!
留言板
歡迎留下建議與分享!希望一起交流!感恩!