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没有原生数组数据结构来表示数组。相反,我们可以使用列表作为数组。让我们看看查找公共元素的多种方法。
使用列表推导式
在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。
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C编程
C++
C#
MongoDB
MySQL
Javascript
PHP