Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 사전 교차로 3개의 정렬된 배열에서 공통 요소 찾기

<시간/>

파이썬을 사용하여 데이터를 조작하는 동안 여러 배열에서 공통적인 요소를 찾아야 하는 상황에 직면할 수 있습니다. 아래와 같이 배열을 딕셔너리로 ​​변환하면 가능합니다.

아래 예제에서는 배열을 가져오고 컬렉션 모듈에서 Counter 컨테이너를 적용합니다. 컨테이너에 있는 각 요소의 수를 유지합니다. 그런 다음 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]