python 两个数组并集
时间: 2024-11-17 08:14:23 浏览: 6
在Python中,你可以使用内置的`set`数据结构来合并两个数组(列表)并得到它们的并集。`set`是一个无序、不重复元素的集合。以下是将两个列表转换成集合然后求交集的基本步骤:
```python
# 定义两个数组
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
# 将列表转换为集合
set1 = set(list1)
set2 = set(list2)
# 使用`union`操作获取并集
union_set = set1.union(set2)
print("两个数组的并集:", union_set)
```
如果你想要保留原始顺序,可以先将列表转换为`frozenset`,因为`frozenset`是不可变的,并且保持插入顺序:
```python
from itertools import chain
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
# 获取两个集合的并集,同时保持原列表的顺序
union_list = list(chain.from_iterable((set(list1), set(list2))))
print("按原顺序的并集:", union_list)
```
相关问题
数组并集 python
在Python中,计算数组的并集通常涉及集合(set)的操作,因为集合数据结构天然支持并集、交集和差集等操作。如果你有两个列表或者其他类型的数组,你可以先将它们转换为集合,然后直接求并集。
例如,假设你有两个列表 `list1` 和 `list2`:
```python
# 定义两个列表
list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
# 将列表转换为集合
set1 = set(list1)
set2 = set(list2)
# 计算并集
union_set = set1.union(set2)
```
`union_set` 现在就是 `list1` 和 `list2` 的并集,其中不会有重复的元素。如果你需要得到一个列表形式的结果,可以再次将其转换回列表:
```python
# 转换回列表
union_list = list(union_set)
```
python取两个数组的并集
可以使用 set 的 intersection 方法来取得两个数组的交集。示例如下:
```python
arr1 = [1, 2, 3, 4, 5]
arr2 = [4, 5, 6, 7, 8]
intersect = set(arr1).intersection(arr2)
print(list(intersect)) # 输出 [4, 5]
```
如果想要求并集,可以使用 set 的 union 方法,示例如下:
```python
arr1 = [1, 2, 3, 4, 5]
arr2 = [4, 5, 6, 7, 8]
union = set(arr1).union(arr2)
print(list(union)) # 输出 [1, 2, 3, 4, 5, 6, 7, 8]
```
也可以直接使用 | 运算符来求并集,示例如下:
```python
arr1 = [1, 2, 3, 4, 5]
arr2 = [4, 5, 6, 7, 8]
union = set(arr1) | set(arr2)
print(list(union)) # 输出 [1, 2, 3, 4, 5, 6, 7, 8]
```
注意,求并集和交集时,先将数组转化为 set 类型,否则可能会出现重复元素。
阅读全文