Python에서 사전 반전

Rayven Esplanada 2023년1월30일
  1. 파이썬에서 사전을 되돌리려면items()를 사용하세요
  2. 파이썬에서 사전을 되돌리려면collections.defaultdict()를 사용하십시오
Python에서 사전 반전

이 기사는 Python의 사전을 반전하는 다양한 방법을 보여줍니다.

사전을 반전하는 것은 목록을 반전하는 것과 다릅니다. 즉, 사전의 키 및 값 요소를 반전하거나 전환하여 개발자가 어떤 용도로든 사용할 수 있도록 기본적으로 교체합니다.

파이썬에서 사전을 되돌리려면items()를 사용하세요

파이썬 사전에는 튜플 형태로 사전의 키-값 쌍을 표시하는 반복 가능한 객체를 반환하는items()라는 내장 함수가 있습니다.

예를 들어, 무작위 카테고리의 사전을 선언하고items()를 사용하여 출력합니다.

dct = {
    "Animal": "Dog",
    "Fruit": "Pear",
    "Vegetable": "Cabbage",
    "Tree": "Maple",
    "Flower": "Daisy",
}

print(dct.items())

출력:

dict_items([('Animal', 'Dog'), ('Fruit', 'Pear'), ('Vegetable', 'Cabbage'), ('Tree', 'Maple'), ('Flower', 'Daisy')])

items()를 사용하여 사전을 인쇄하면 사전에 대한for 루프를 사용하여 조작 할 수있는 반복 가능한 튜플 값 목록이 출력됩니다.

items()의 결과를 반복하고 키와 값을 전환하여 키-값 쌍을 반전합니다.

dct = {v: k for k, v in dct.items()}
print(dct)

for루프의 kv는 각각 키와 값을 나타냅니다. v: k는 이전 값v를 새 키로 설정하고 이전 키k를 새 값으로 설정했지만 각 반복에서 키와 값에 대한 자리 표시 자입니다.

출력:

{'Dog': 'Animal', 'Pear': 'Fruit', 'Cabbage': 'Vegetable', 'Maple': 'Tree', 'Daisy': 'Flower'}

이제 키 및 값 요소가 출력에서 반전됩니다.

역방향 사전의 동일한 값 키

딕셔너리를 반전 할 때 또 다른 예제 시나리오는 동일한 값을 가진 여러 키 또는 값이있는 경우입니다. 이것은 사전을 반전시킬 가능성이 더 높은 시나리오입니다.

예를 들어, 사람들이 좋아하는 동물의 사전입니다.

favAnimal = {
    "John": "Dog",
    "Jane": "Cat",
    "Jerome": "Lion",
    "Jenny": "Dog",
    "Jared": "Giraffe",
    "James": "Dog",
}

위의 코드를 사용하여 사전을 반전하면 출력이 예상 한대로되지 않습니다.

favAnimal = {v: k for k, v in favAnimal.items()}
print(favAnimal)

출력:

{'Dog': 'James', 'Cat': 'Jane', 'Lion': 'Jerome', 'Giraffe': 'Jared'}

여기에서는 키 또는 값이 루프에서 반복 될 때마다 기존 레코드를 덮어 쓰므로 원본 사전의 2 개 요소가 누락되었습니다.

사전에 Dog값 쌍을 가진 3 명이 포함되어 있지만 Dog값이있는 마지막 레코드이고 다른 2 개의 사전 항목을 덮어 썼기 때문에 James만 복사되었습니다.

이 문제를 해결하려면 단일 키에 할당되도록 값을 목록에 저장해야합니다.

전체 예제 코드 :

favAnimal = {
    "John": "Dog",
    "Jane": "Cat",
    "Jerome": "Lion",
    "Jenny": "Dog",
    "Jared": "Giraffe",
    "James": "Dog",
}

favAnimal = {v: k for k, v in favAnimal.items()}

print(favAnimal)

파이썬에서 사전을 되돌리려면collections.defaultdict()를 사용하십시오

모듈 collections에는 Python의 사전에있는 값을 조작 할 수있는 defaultdict()함수가 있습니다.

defaultdict()는 주로 존재하지 않는 키의 기본값을 만드는 데 사용됩니다. 존재하지 않는 키에 액세스하면 존재하지 않더라도 기본값을 선언 할 수 있습니다.

이 함수는 목록 데이터 유형의 값으로 새 사전을 인스턴스화하려는 경우에 유용합니다.

동일한 예제favAnimal을 사용하여 사전을 반전하고 값을 목록으로 변환합니다.

먼저defaultdict()를 사용하여 새 사전을 초기화합니다.

from collections import defaultdict

favAnimal_inverted = defaultdict(list)

다음으로 반전에 대한 목록 이해력을 사용하고 반전 된 값을 새 사전에 저장합니다.

{favAnimal_inverted[v].append(k) for k, v in favAnimal.items()}

마지막으로,defaultdict()는 딕셔너리의 일종의 서브 클래스를 생성하므로dict()로 래핑하여 기본 딕셔너리 유형으로 다시 변환합니다.

result = dict(favAnimal_inverted)
print(result)

출력:

{'Dog': ['John', 'Jenny', 'James'], 'Cat': ['Jane'], 'Lion': ['Jerome'], 'Giraffe': ['Jared']}

John, Jenny, James는 이제 값이 Dog인 마지막 요소가 다른 요소를 덮어 쓰는 대신 Dog키가있는 동일한 목록에 있습니다.

전체 예제 코드 :

from collections import defaultdict

favAnimal_inverted = defaultdict(list)
result = dict(favAnimal_inverted)
print(result)

요약하면items()를 사용하여 사전을 반복하고 키와 값을 반전합니다. 혹시라도 데이터 세트에 중복이있을 가능성이있는 경우defaultdict()를 사용하여 값을 목록으로 변환하고 사전의 값이 대체하는 대신 목록에 추가되도록 조작하십시오. 기존 값.

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

관련 문장 - Python Dictionary