在 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]
它找到列表 l1
和 l2
的並集並將結果儲存在 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]
它使用 +
運算子計算列表 l1
和 l2
的並集,並將並集儲存在 union_l1_l2
中。我們使用 sorted()
方法對列表 union_l1_l2
的元素進行排序,以排序方式獲得 l1
和 l2
的並集。
獲取兩個列表的並集而不重複 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]
在這裡,我們使用 +
運算子找到 l1
和 l2
的並集,並使用 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()
方法時,我們不會得到重複的元素。