Python查詢陣列公共元素的程式
以多維陣列為例,有一種方法可以找到多維陣列中存在的公共元素——intersection_update()。
此方法用於查詢多維陣列中存在的公共或相交元素。讓我們考慮一個輸入輸出場景,然後繼續進行程式設計。
輸入輸出場景
考慮一個本質上是多維的二維陣列。
arr = [[1, 2, 3, 4], [3, 4, 5, 6], [7, 8, 3, 4], [4, 9, 8, 3], [4, 3, 10, 12]]
上述陣列包含5個子陣列。
我們可以清楚地觀察到元素“3”和“4”存在於“arr”的所有子陣列中。
因此,元素“3”和“4”被認為是二維陣列arr的公共元素。
示例
在這個示例中,我們將使用intersection_update()方法查詢多維陣列中存在的公共元素。
考慮一個可以從中找到公共元素的二維陣列。
宣告一個引數化方法,該方法可以將二維陣列作為引數來查詢公共元素。
在方法中,用0初始化集合陣列並將值賦給變數。
使用迴圈遍歷陣列元素。
藉助intersection_update()方法,在遍歷時依次查詢公共元素。
def common_elements(arr):
result = set(arr[0])
for x in arr[1:]:
result.intersection_update(x)
return list(result)
# main section
if __name__ == "__main__":
arr = [[1, 2, 3, 4], [3, 4, 5, 6], [7, 8, 3, 4], [4, 9, 8, 3], [4, 3, 10, 12]]
res = common_elements(arr)
if len(res) > 0:
print ("The common elements present within the array are: ",res)
else:
print ("There are no common elements present within the array !!")
輸出
上述程式的輸出如下:
The common elements present within the array are: [3, 4]
查詢兩個不同陣列中的公共元素
NumPy的intersect1d()方法可用於查詢兩個一維陣列的公共元素。這類似於處理多維陣列的intersect_update()方法。為了更好地理解這個概念,讓我們來看一個例子。
輸入輸出場景
考慮兩個本質上是一維的陣列。
arr1 = [1, 2, 3, 4] arr2 = [3, 4, 5, 6]
我們可以清楚地看到元素“3”和“4”存在於陣列arr1和arr2中。
因此,我們可以得出結論,陣列arr1和arr2的公共元素是3和4。
示例
在下面的示例中,我們將使用numpy模組的intersect1d()方法查詢多個一維陣列中存在的公共元素。
import numpy as n
arr1 = [1, 2, 3, 4]
print("The first array is: ")
print(arr1)
arr2 = [3, 4, 5, 6]
print("The second array is: ")
print(arr2)
narr1 = n.array(arr1)
narr2 = n.array(arr2)
print("The common elements within the given arrays are: ")
print(n.intersect1d(narr1, narr2))
輸出
上述程式的輸出如下:
The first array is: [1, 2, 3, 4] The second array is: [3, 4, 5, 6] The common elements within the given arrays are: [3 4]
這樣,根據陣列的型別,可以遵循相應的步驟。如果考慮的陣列是多維陣列,則將遵循第一個程式中遵循的步驟。
如果考慮的陣列是一維陣列,則將遵循第二個程式中遵循的步驟。這就是查詢一個或多個數組的公共元素的方法。
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP