Python程序查找两个数组中的共同元素
数组是一种数据结构,由相同数据类型的元素集合组成,每个元素由索引标识。
[2, 4, 0, 5, 8]
0 1 2 3 4
整数2、4、0、5、8是数组元素,0、1、2、3、4是数组元素的相应索引值。
以下文章中,我们将讨论Python程序,以查找两个数组之间的共同元素。
输入输出方案
假设我们有两个数组A和B。结果数组具有两个数组之间的共同元素。
输入数组:
A = [1, 2, 3, 4, 5]
B = [5, 2, 6, 3, 9]
输出数组:
[2, 3, 5]
元素2、3、5是两个输入数组之间的共同元素。
Python没有一个本地的数组数据结构来表示数组,而是可以使用List作为数组。让我们看看找到共同元素的多种方法。
使用List comprehension
在Python中,List comprehension提供了最短的语法来构建一个列表,而不需要初始化一个空列表来附加每个迭代的值。
示例
在下面的示例中,我们将使用列表理解来定义公共元素。
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中。最后,所有共同元素都存储在结果数组中。
使用Set
在两个数组中查找公共元素与查找两个集合的交集非常相似。通过使用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数组
如果找不到共同元素,则“&”属性将返回空集。
使用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]
从上面的输出可以看到,共同的元素为1、3。