Python程序查找两个数组中的共同元素

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。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程