在 Python 中获取列表的并集
Jay Prakash Gupta
2023年1月30日
列表的并集的意思是来自不同列表的所有元素都将放在一个列表中。我们可以找到两个或两个以上列表的并集。有多种方法可以实现列表并集。下面用足够的代码示例描述了所有方法。
在 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()
方法时,我们不会得到重复的元素。