在 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