Python程式:查詢兩個陣列中不同的元素


在程式設計中,陣列是一種用於儲存同構資料元素集合的資料結構。陣列中的每個元素都由一個鍵或索引值標識。

Python中的陣列

Python沒有特定資料型別來表示陣列。相反,我們可以使用列表作為陣列。

[1, 4, 6, 5, 3]

查詢兩個陣列中不同的元素意味著識別兩個給定陣列之間唯一的元素。

輸入輸出場景

假設我們有兩個包含整數值的陣列A和B。結果陣列將包含兩個陣列中不同的元素。

Input arrays:
A = [1, 2, 3, 4, 5]
B = [5, 2, 6, 3, 9]
Output array:
[1, 6, 4, 9]

元素1、6、4、9是這兩個陣列之間唯一的值。

Input arrays:
A = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]
Output array:
[]

在給定的兩個陣列中沒有找到不同的元素。

使用for迴圈

我們將對元素數量相等的陣列使用for迴圈。

示例

在下面的示例中,我們將使用列表推導方法定義for迴圈。

arr1 = [1, 2, 3, 4, 5]
arr2 = [5, 2, 6, 3, 9]

result = []
for i in range(len(arr1)):
   if arr1[i] not in arr2:
      result.append(arr1[i])
   if  arr2[i] not in arr1:
      result.append(arr2[i])
        
print("The distinct elements are:", result)

輸出

The distinct elements are: [1, 6, 4, 9]

在這裡,我們使用for迴圈和if條件找到了不同的元素。最初,迭代迴圈並驗證元素arr1[i]是否不存在於陣列arr2中,如果元素是不同的元素,我們將把該元素新增到result變數中。同樣,我們將第二個陣列元素與第一個陣列進行了驗證。並將不同的元素儲存在result陣列中。

示例

讓我們再取一組陣列並找到不同的元素。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]

result = []
for i in range(len(a)):
   if a[i] not in b:
      result.append(a[i])
   if  b[i] not in a:
      result.append(b[i])
        
print("The distinct elements are:", result)

輸出

The distinct elements are: []

在給定的陣列集中沒有找到不同的元素。

使用集合

在兩個陣列中查詢不同的元素與查詢兩個集合之間的對稱差非常相似。透過使用Python集合資料結構及其屬性,我們可以很容易地識別兩個陣列中不同的元素。

示例

首先,我們將列表轉換為集合,然後在兩個集合之間應用對稱差屬性^以獲得不同的元素。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7, 8]
result = list((set(a) ^ set(b)))
if result:
    print("The distinct elements are:", result)
else:
    print("No distinct elements present in two arrays")

輸出

The distinct elements are: [1, 2, 6, 7, 8]

我們還可以使用set.symmetric_difference()方法查詢兩個陣列中不同的元素。symmetric_difference()方法返回給定集合中所有唯一的項。

語法

set_A.symmetric_difference(set_B)

示例

讓我們看一個例子,從兩個陣列中獲取不同的元素。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7, 8]

result = list(set(a).symmetric_difference(set(b)))

if result:
    print("The distinct elements are:", result)
else:
    print("No distinct elements present in two arrays")

輸出

The distinct elements are: [1, 2, 6, 7, 8]

在這裡,我們使用了symmetric_difference()方法將A和B的對稱差新增到result變數中。然後,使用list()函式將唯一的元素集合再次轉換為列表。

示例

如果沒有找到不同的元素,則symmetric_difference()方法將返回空集。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]

result = list(set(a).symmetric_difference(set(b)))

if result:
    print("The distinct elements are:", result)
else:
    print("No distinct elements present in two arrays")

輸出

No distinct elements present in two arrays

在上面的示例中,所有元素都是公共元素。因此,symmetric_difference()方法返回空集。

更新於:2023年5月29日

2K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.