Python 사전 교차점

Migel Hewage Nimesha 2024년2월15일
  1. 파이썬 사전
  2. Dictionary Comprehension을 사용하여 Python에서 두 개의 사전 교차
  3. Bitwise & 연산자를 사용하여 Python에서 두 개의 사전 교차
  4. Set intersection() 메서드를 사용하여 Python에서 두 사전을 교차
  5. Python에서 여러 사전을 교차하는 데 사용되는 메서드
  6. 결론
Python 사전 교차점

이 기사에서는 Python에서 두 개 또는 여러 개의 사전에서 교차를 수행하는 다양한 방법에 대해 설명합니다.

파이썬 사전

데이터는 Python 사전을 사용하여 키-값 쌍 형식으로 보관되며 변경 가능한 데이터 구조입니다. Python의 사전 데이터 유형은 주어진 키에 대해 특정 값이 존재하는 실제 데이터 배열을 모방할 수 있습니다.

키와 값은 사전을 정의하는 데 사용되는 요소입니다.

  • 키는 단일 요소여야 합니다.
  • 값은 목록, 정수, 튜플 등과 같은 모든 유형이 될 수 있습니다.

즉, 딕셔너리는 값이 파이썬 객체가 될 수 있는 키-값 쌍의 그룹입니다. 반대로 키는 문자열, 튜플 또는 숫자와 같은 변경할 수 없는 Python 객체입니다.

여러 키-값 쌍을 사용하여 사전을 작성할 수 있으며 각 쌍이 중괄호 안에 포함되기 전에 콜론으로 각 키와 해당 값을 구분합니다.

구문은 다음과 같습니다.

dict = {"Name": "John", "Age": 18, "Grade": "13"}

예를 살펴보겠습니다.

Python 사전 예

Dictionary Comprehension을 사용하여 Python에서 두 개의 사전 교차

Python에서 키를 통해 사전 교차를 수행하기 위해 다양한 접근 방식을 사용할 수 있습니다.

  • 먼저 원래 사전을 dict01dict02로 초기화하여 시작합니다.
  • 원본 사전을 인쇄합니다.
  • 다음으로 dict01의 키를 k1로 간주하고 for 루프를 실행하여 dict01k1dict02에 존재하는지 확인합니다. 공통 키가 있는 경우 해당 값은 intersection이라는 새 사전으로 푸시됩니다(사전은 요구 사항에 따라 선호될 수 있음).
  • 공통 키와 해당 값을 사용하여 새 사전 intersection을 인쇄합니다.

예:

# inititializing the dictionaries
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)

# performing intersection
intersection = {k1: dict01[k1] for k1 in dict01 if k1 in dict02}

# printing output
print("Intersected Dictionary: ", str(intersection))

위의 코드를 실행하면 아래 나열된 출력을 받게 됩니다.

Python Dictionary Intersection Using Dictionary Comprehension 1

dict02의 키를 k2로 간주하십시오. 동일한 코드를 따라 for 루프를 실행하여 dict02k2dict01에도 존재하는지 확인합니다.

또한 값이 문자열 유형인 경우:

# inititializing the dictionaries
dict01 = {1: "My", 2: "I", 3: "age"}
dict02 = {1: "name", 2: "live", 4: "year"}

# defining a function to merge strings


def mergeStrings(str01, str02):
    return str01 + " " + str02


# performing intersection
intersectString = {
    k1: mergeStrings(dict01[k1], dict02[k1]) for k1 in dict01.keys() if k1 in dict02
}

# printing output
print(intersectString)

위 코드의 결과를 살펴보겠습니다.

Python Dictionary Intersection Using Dictionary Comprehension 2

Bitwise & 연산자를 사용하여 Python에서 두 개의 사전 교차

단순히 사전에서 공통 키와 키의 해당 값을 필터링합니다. 동일한 값을 가진 키만 필터링하며 이 접근 방식은 이해하고 적용하기가 훨씬 더 간단합니다.

  • 먼저 초기에 원래 사전으로 dict01dict02를 설정합니다.
  • 다음으로 원본 사전을 인쇄합니다.
  • 다음으로 dict01dict02 사전을 items() 함수를 사용하여 목록 형식으로 변환합니다.
  • 그런 다음 & 연산자를 사용하여 AND를 수행합니다. 공통 키-값 쌍은 dict() 함수를 사용하여 사전으로 변환되고 새 사전 intersection에 저장됩니다.
  • 마지막으로 새 사전을 인쇄합니다.

예:

# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)

# performing intersection
intersection = dict(dict01.items() & dict02.items())

# printing output
print("Intersected Dictionary", str(intersection))

위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

비트 및 연산자를 사용한 Python 사전 교차

Python 사전 교차에 대해 Bitwise & 연산자를 수행할 때 각 키의 키와 값도 동일해야 합니다.

Set intersection() 메서드를 사용하여 Python에서 두 사전을 교차

set intersection() 메서드는 다음과 같이 mn 집합 모두에 있는 요소로 구성된 집합을 반환합니다.

m = {"A": 1, "B": 6, "C": 3, "D": 5}
n = {"A": 1, "D": 5, "E": 2}

setM = set(m)
setN = set(n)

setM.intersection(setN)

for item in setM.intersection(setN):
    print(item)

위의 예제 코드를 실행하면 아래와 같은 결과를 얻을 수 있습니다.

intersection()을 사용하는 Python 사전 교차

Python에서 여러 사전을 교차하는 데 사용되는 메서드

비트 단위 & 연산자와 Set intersection() 메서드를 모두 사용하여 추가 코딩을 통해 여러 사전에서 교차하는 요소를 쉽게 찾을 수 있습니다.

비트 & 연산자 사용:

# inititializing dictionary
dict01 = {"A": 1, "B": 6, "C": 3, "D": 5}
dict02 = {"A": 1, "C": 4, "D": 5, "E": 2}
dict03 = {"A": 1, "C": 9, "D": 5, "E": 1}

# printing original dictionary
print("First original dictionary: ", dict01)
print("Second original dictionary: ", dict02)
print("Third original dictionary: ", dict03)

# performing intersection
intersection = dict(dict01.items() & dict02.items() & dict03.items())

# printing output
print("Intersected Dictionary", str(intersection))

위의 코드를 실행한 후 결과를 살펴보겠습니다.

&를 사용한 Python 다중 사전 교차

Set intersection() 메서드 사용:

m = {"A": 1, "B": 6, "D": 5, "E": 2}
n = {"A": 1, "D": 5, "E": 2}
t = {"A": 1, "C": 4, "D": 5, "E": 2}

setM = set(m)
setN = set(n)
setT = set(t)

setM.intersection(setN).intersection(setT)

for item in setM.intersection(setN).intersection(setT):
    print(item)

위의 코드를 실행한 후 결과를 살펴보겠습니다.

intersection()을 사용하는 Python 다중 사전 교차

결론

마무리하기 위해 Python에서 두 개 또는 여러 개의 사전에 대해 교차를 수행하여 새 사전을 만드는 빠르고 효율적인 방법을 고려했습니다. 기본 설정 및 사용 사례에 따라 필요한 접근 방식을 선택할 수 있습니다.

우리는 두 개 이상의 사전이 교차하는 부분을 찾았습니다. 모두 키와 키-값 쌍의 수준에서 공통적으로 키에 대해 서로 다른 기능을 사용하기도 했습니다. 이러한 방법이 유일한 방법은 아닙니다. 더 많은 것을 생각할 수 있으며 아마도 이러한 작업에 대한 더 명시적인 메서드가 이후 버전의 Python에 추가될 것입니다.

거의 모든 제안된 코드는 한 줄짜리이지만 모두 명확하고 우아합니다.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

관련 문장 - Python Dictionary