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.