Python 检查两个数组是否相等的程序
有几种方法可以帮助我们检查给定的数组是否相等。对数组的比较不会依赖于元素的索引,它只会比较该数组中的特定元素是否存在于另一个数组中。让我们讨论一下比较两个数组并检查它们是否相等的几种技术。
有几种方法可以帮助我们检查给定的数组是否相等。对数组的比较不会依赖于元素的索引,它只会比较该数组中的特定元素是否存在于另一个数组中。让我们讨论一下比较两个数组并检查它们是否相等的几种技术。
输入输出场景
考虑以下两个给定的数组 –
arr1 = [1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
arr2 = [3, 5, 4, 7, 1, 2, 6, 9, 8, 10]
现在,让我们检查并验证arr1的每个元素是否存在于arr2中。
- arr1的第一个元素是1(检查1是否存在于arr2中)。
-
元素1也存在于arr2中。所以,移到arr1中的下一个元素。
-
第二个元素是3。该元素也存在于第二个数组中。
-
所以,移动到下一个元素5。元素5也存在于arr2中。移动到arr1中的下一个元素,即7。
-
7也存在于arr2中的第4个位置。移动到下一个元素9。元素9也存在于arr2中。
同样,检查arr1中的所有元素是否存在于arr2中。如果第一个数组中的元素存在于第二个数组中,并且第二个数组中没有其他元素存在,那么我们可以得出结论,给定的两个数组是相等的。
注意 −数组的相等性不是根据数组的特定索引中存在的元素来判断的,而是根据元素的存在性进行判断。
使用Numpy模块
all()方法属于Numpy模块。此方法用于检查和验证给定的数组是否相等。用于检查它们相等性的操作符为==
。
all() 方法接受一个参数,即要评估的数组。如果数组中的任何元素计算为false,则总体结果将为false;否则,它将返回true。我们可以使用此方法和操作符==
来比较两个数组并判断它们是否相等。
示例
在以下示例中,我们将比较给定的数组,并使用all()方法和==
操作符来检查它们的相等性。必须按照下面描述的步骤来构建所需的程序。
- 导入numpy模块以访问其方法和属性。
-
声明两个要比较并检查其相等性的数组。
-
将这些数组转换为numpy数组以执行numpy操作。
-
使用等号操作符,即
==
,以及方法all()来清楚地比较数组。
import numpy as n
arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
arr2 = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
narr1 = n.array([arr1])
narr2 = n.array([arr2])
result_variable = (narr1 == narr2).all()
if(result_variable == True):
print(" Yes!! The given arrays are equal. ")
else:
print(" The given arrays are not equal. ")
输出
上述程序的输出如下:
The given arrays are not equal.
使用排序技术
排序技术还可用于检查数组是否相等。首先,可以使用排序技术对给定数组进行排序。然后,通过考虑它们各自的索引来比较一个数组中的元素与另一个数组中的元素,因为它们已经按照排序顺序排列。
如果第一个数组中第一个索引处的元素也在第二个数组中的第一个索引处,则取第二个索引处的元素。这个过程一直持续到达最后一个索引。
示例
在以下示例中,我们将比较给定的数组,并通过对数组进行排序来检查它们是否相等。
def equality_check(arr1, arr2, size1, size2):
if (size1 != size2):
return False
arr1.sort()
arr2.sort()
for i in range(0, size2):
if (arr1[i] != arr2[i]):
return False
return True
if __name__ == "__main__":
arr1 = [1, 2, 4, 5, 3]
arr2 = [6, 9, 7, 10, 8]
n = len(arr1)
m = len(arr2)
if (equality_check(arr1, arr2, n, m)):
print(" Yes!! The given arrays are equal. ")
else:
print(" The given arrays are not equal. ")
输出
上述程序的输出如下所示:
The given arrays are not equal.