Python 找出两个数组中的共同元素
数组是一种数据结构,由相同数据类型的元素集合组成,每个元素通过索引进行标识。
[2, 4, 0, 5, 8]
0 1 2 3 4
整数2, 4, 0, 5, 8是数组元素,0, 1, 2, 3, 4是数组元素的相应索引值。
在下面的文章中,我们将讨论寻找两个数组之间共同元素的Python程序。
输入输出情况
假设我们有两个数组A和B。结果数组包含两个数组之间的共同元素。
Input arrays:
A = [1, 2, 3, 4, 5]
B = [5, 2, 6, 3, 9]
Output array:
[2, 3, 5]
2、3、5 是两个输入数组之间的共同元素。
Python 没有原生的数组数据结构来表示数组。相反,我们可以使用 List 作为数组。让我们看看找到共同元素的多种方法。
使用列表推导式
在 Python 中,列表推导式提供了在每次迭代中不初始化空列表来附加值的最短语法。
示例
在下面的示例中,我们将使用列表推导式来定义共同元素。
a = [1, 2, 3, 4, 5]
b = [5, 2, 6, 3, 9]
result = [i for i in a if i in b]
print("The common elements are:", result)
输出
The common elements are: [2, 3, 5]
最初,使用for循环迭代数组a的所有元素,并验证每个元素是否存在于数组b中。最后,将所有公共元素存储在结果数组中。
使用集合
在两个数组中寻找公共元素非常类似于寻找两个集合的交集。通过使用Python集合数据结构和属性,我们可以很容易地识别出两个数组中的公共元素。
示例
最初,我们将把列表a和b转换为集合,然后将两个集合之间的交集属性“&”应用于获取公共元素。
a = [1, 2, 3, 4, 5]
b = [5, 2, 6, 3, 9]
result = (set(a) & set(b))
if result:
print("The common elements are:", result)
else:
print("No common elements present in two arrays")
输出
The common elements are: {2, 3, 5}
对于这个例子,2、3和5是共同的元素。
示例
让我们再举一个例子来找出共同的元素。
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
result = (set(a) & set(b))
if result:
print("The common elements are:", result)
else:
print("No common elements present in two arrays")
输出
No common elements present in two arrays
如果没有找到公共元素,则“&”属性将返回空集。
使用NumPy
numpy.intersect1d()方法用于找到两个数组之间的公共元素。intersect1d()方法接受两个数组作为参数,并返回一个包含所有公共元素的数组。
语法
numpy.intersect1d(ar1, ar2)
它找到两个数组的交集,并返回输入数组中同时存在于两个数组中的排序后的唯一值。
示例
在这个例子中,我们将使用numpy.array()方法创建两个numpy数组,然后应用numpy.intersect1d()方法。
import numpy as np
arr1 = np.array([1, 3, 4, 3])
arr2 = np.array([3, 1, 2, 1])
result = np.intersect1d(arr1, arr2)
print("The common elements are:", result)
输出
The common elements are: [1 3]
从上面的输出中,共同的元素是1、3。