我有兩個 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: 簡潔,但可讀性可能稍低。

根據需求選擇適合的方法!