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(检查 arr2 中是否存在 1)。
元素 1 也存在于 arr2 中。因此,移动到 arr1 中的下一个元素。
第二个元素是 3。该元素也存在于第二个数组中。
因此,移动到下一个元素 5。元素 5 也存在于 arr2 中。移动到 arr1 中的下一个元素,即 7。
7 也存在于 arr2 中的第 4 个位置。移动到下一个元素 9。元素 9 也存在于 arr2 中。
类似地,检查 arr1 中的所有元素是否都存在于 arr2 中。如果第一个数组中的元素存在于第二个数组中,并且 arr2 中不存在其他元素,那么我们可以得出结论,这两个给定的数组是相等的。
注意 - 数组的相等性不是根据数组特定索引中存在的元素来判断的,而是元素的存在是必须的。
使用 Numpy 模块
all() 方法属于 Numpy 模块。此方法有助于检查和验证给定的数组是否相等。用于检查其相等性的运算符是 ==。
all() 方法接受一个参数,即要评估的数组。如果数组的任何元素计算结果为假,则整体结果将为假;否则,它将返回真。我们可以将它与运算符“==”一起使用来比较两个数组并判断它们是否相等。
示例
在以下示例中,我们将比较给定的数组并使用 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.