在 Python 中獲取列表的並集

Jay Prakash Gupta 2023年1月30日 2021年10月2日
  1. 在 Python 中使用重複的公共元素獲取兩個列表的並集
  2. 獲取兩個列表的並集而不重複 Python 中的公共元素
  3. 在 Python 中獲取兩個以上列表的並集
在 Python 中獲取列表的並集

列表的並集的意思是來自不同列表的所有元素都將放在一個列表中。我們可以找到兩個或兩個以上列表的並集。有多種方法可以實現列表並集。下面用足夠的程式碼示例描述了所有方法。

在 Python 中使用重複的公共元素獲取兩個列表的並集

我們可以使用 + 運算子新增兩個列表以獲取兩個列表的並集。

示例程式碼:

l1 = [1,2,3,4,5]
l2 = [2,4,6.8,10]

l3 = l1 + l2

print("l1: ",l1)
print("l2: ",l2)
print("Union of l1 and l2 with element repetition: ",l3)

輸出:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6.8, 10]
Union of l1 and l2 with element repetition:  [1, 2, 3, 4, 5, 2, 4, 6.8, 10]

它找到列表 l1l2 的並集並將結果儲存在 l3 中。從輸出中可以清楚地看出,如果我們在任何列表運算元中重複了相同的元素,那麼我們在查詢並集時就有重複的元素。

在 Python 中按排序順序獲取兩個列表的並集

如果我們希望以排序的方式找到列表的並集,我們可以使用 sorted() 方法對並集操作後獲得的列表進行排序。

程式碼 :

l1 = [11,20,1,2,3,4,5]
l2 = [2,4,6,8,10]

union_l1_l2 = l1+l2
l3 = sorted(union_l1_l2)

print("l1: ",l1)
print("l2: ",l2)
print("Sorted union of two l1 and l2 : ",l3)

輸出:

l1:  [11, 20, 1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Sorted union of two l1 and l2 :  [1, 2, 2, 3, 4, 4, 5, 6, 8, 10, 11, 20]

它使用 + 運算子計算列表 l1l2 的並集,並將並集儲存在 union_l1_l2 中。我們使用 sorted() 方法對列表 union_l1_l2 的元素進行排序,以排序方式獲得 l1l2 的並集。

獲取兩個列表的並集而不重複 Python 中的公共元素

在 Python 中,集合是不允許元素重複的資料型別。因此,我們可以使用 set() 來獲得兩個列表的並集,而無需重複公共元素。

程式碼 :

def union_without_repetition(list1,list2):
   result = list(set(list1 + list2))
   return result

l1 = [1,2,3,4,5]
l2 = [2,4,6,8,10]
l3= union_without_repetition(l1,l2)

print("l1: ",l1)
print("l2: ",l2)
print("Union of two l1 and l2 without repetition : ",l3)

輸出:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
Union of two l1 and l2 without repetition :  [1, 2, 3, 4, 5, 6, 8, 10]

在這裡,我們使用 + 運算子找到 l1l2 的並集,並使用 set() 函式僅選擇唯一元素,然後最終使用 list() 函式將集合轉換為列表。

在 Python 中獲取兩個以上列表的並集

我們已經計算了兩個列表的並集。但是,在找到兩個以上列表的並集的情況下該怎麼辦。這很簡單。我們可以同時使用 set()union() 內建的 Python 函式來查詢兩個以上列表的並集。

程式碼 :

def union(lst1, lst2, lst3):
    final_list = list(set().union(lst1, lst2, lst3))
    return final_list

l1 = [1,2,3,4,5]
l2 = [2,4,6,8,10]
l3 = [5,6,7,8,11,15,18]
print("l1: ",l1)
print("l2: ",l2)
print("l3 : ",l3)
print("Union of more than l1 l2 and l3: ",union(l1,l2,l3))

輸出:

l1:  [1, 2, 3, 4, 5]
l2:  [2, 4, 6, 8, 10]
l3 :  [5, 6, 7, 8, 11, 15, 18]
Union of more than l1 l2 and l3:  [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15, 18]

在這裡,我們使用 set() 建構函式建立一個 set 物件,然後為該物件呼叫 union() 方法。union() 方法可以接受任意數量的 list 物件並返回它們的並集。

在這種情況下,當我們使用 set 類的 union() 方法時,我們不會得到重複的元素。

相關文章 - Python List