使用 Python 字典交集找到三個排序陣列中的公共元素


使用 python 來處理資料時,我們可能會遇到這樣的情況,我們需要找到多個數組中的公共元素。這可以透過將陣列轉換成字典來實現,如下所示。

在下面的示例中,我們取陣列並從 collections 模組中應用計數器容器。它將儲存容器中存在的每個元素的計數。然後,我們透過應用 dict() 並使用 & 運算子來轉換它們為字典,以識別陣列中僅有的公共元素。最後,我們迴圈瀏覽新建立字典的項,並從字典中追加值以獲得公共值的最終結果。

示例

from collections import Counter

arrayA = ['Sun', 12, 14, 11, 34]
arrayB = [6, 12, 'Sun', 11]
arrayC = [19, 6, 20, 'Sun', 12, 67, 11]

arrayA = Counter(arrayA)
arrayB = Counter(arrayB)
arrayC = Counter(arrayC)

# Intersection
commonDict = dict(arrayA.items() & arrayB.items() & arrayC.items())
res = []

# result
for (key, val) in commonDict.items():
   for i in range(0, val):
      res.append(key)

print("The common values among the arrays are:\n ",res)

輸出

執行以上程式碼會給我們以下結果 −

The common values among the arrays are:
['Sun', 11, 12]

更新於: 26-Aug-2020

258 瀏覽量

開啟您的職業生涯

完成課程並獲得認證

立即開始
廣告
© . All rights reserved.