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。
廣告