Computer >> Máy Tính >  >> Lập trình >> Python

Tìm các phần tử chung trong ba mảng được sắp xếp theo giao điểm từ điển trong Python

Trong khi thao tác dữ liệu bằng python, chúng ta có thể gặp tình huống cần tìm các phần tử phổ biến giữa nhiều mảng. Điều này có thể đạt được bằng cách chuyển đổi arrayd thành các từ điển như hình dưới đây.

Trong ví dụ dưới đây, chúng tôi lấy các mảng và áp dụng vùng chứa Bộ đếm từ mô-đun bộ sưu tập. Nó sẽ chứa số lượng của từng phần tử có trong vùng chứa. Sau đó, chúng tôi chuyển đổi chúng thành một từ điển bằng cách áp dụng dict () và sử dụng toán tử &để chỉ xác định các phần tử chung giữa các mảng. Cuối cùng, chúng tôi lặp qua các mục của từ điển mới được tạo và nối các giá trị từ từ điển để nhận được kết quả cuối cùng là các giá trị chung.

Ví dụ

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)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

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