English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python 기본 튜토리얼

Python 흐름 제어

Python 함수

Python 데이터 타입

Python 파일 작업

Python 객체와 클래스

Python 날짜와 시간

Python 고급 지식

Python 참조 매뉴얼

Python 딕셔너리 이해

이 튜토리얼에서는 Python 딕셔너리 이해와 예제를 통해 그 사용법을 배웁니다.

딕셔너리는 데이터를 저장할 수 있는 Python의 데이터 타입으로,키/값 쌍에서예를 들어:

my_dict = {1: 'apple', 2: 'ball'}

그에 대한更多信息를 알고 싶다면 다음을 방문하세요:Python 딕셔너리

Python에서 딕셔너리 이해는 무엇인가요?

딕셔너리 이해는 딕셔너리를 생성하는 간결하고 정교한 방법입니다.

예제1: 딕셔너리 이해

다음 코드를 고려해 보세요:

square_dict = dict()
for num in range(1, 11) :
    square_dict[num] = num*num
print(square_dict)

이제, 딕셔너리 이해 함수를 사용하여 위 프로그램에서 딕셔너리를 생성해 보겠습니다.

# 딕셔너리 이해 예제
square_dict = {num: num*num for num in range(1, 11)}
print(square_dict)

두 프로그램의 출력은 같을 것입니다.

{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}

이 두 프로그램에서 모두 square_dict를 생성했습니다.숫자 제곱 키/값 쌍의 딕셔너리

하지만, 딕셔너리 이해를 사용하면 우리는一行로생성딕셔너리.

딕셔너리 이해 사용

위의 예제에서, 딕셔너리 이해는 특정 패턴으로 작성되어야 합니다.

딕셔너리 이해의 가장 간단한 문법은:

dictionary = {key: value for vars in iterable}

이제 이 문법을 이전 예제의 딕셔너리 이해와 비교해 보겠습니다.

이제, 딕셔너리 이해를 사용하는 방법을 보겠습니다.

예제3:딕셔너리 이해 사용법

#item price in dollars
old_price = {'milk': 1.02, 'coffee': 2.5, 'bread': 2.5}
dollar_to_pound = 0.76
new_price = {item: value*dollar_to_pound for (item, value) in old_price.items()}
print(new_price)

출력 결과

{'milk': 0.7752, 'coffee': 1.9, 'bread': 1.9}

여기서, 우리는 달러 단위로 상품 가격을 검색하여 파운드 단위로 변환할 수 있습니다. 딕셔너리 이해를 사용하면 이 작업이 더 간단하고 짧습니다.

딕셔너리 이해의 조건

조건을 추가하여 딕셔너리 이해를 더욱 정의할 수 있습니다. 예를 들어 보겠습니다.

예제4:만족 조건字典 이해

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}
even_dict = {k: v for (k, v) in original_dict.items() if v % 2 == 0}
print(even_dict)

출력 결과

{'jack': 38, 'michael': 48}

그러면, if字典 이해의 문장으로 인해 오직 짝수 값을 가진 항목만 추가되었습니다.

예제5:다중 if 조건字典 이해

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}
new_dict = {k: v for (k, v) in original_dict.items() if v % 2 != 0 if v < 40}
print(new_dict)

출력 결과

{'john': 33}

이 경우, 오직 홀수 값이40의 항목이 새로운 딕셔너리에 추가되었습니다.

이유는 if字典 이해에서 여러 문장이 있기 때문입니다. 그들은 and로等效되어 두 조건을 모두 만족해야 합니다.

예제6:if-else 조건字典 이해

original_dict = {'jack': 38, 'michael': 48, 'guido': 57, 'john': 33}
new_dict_1 = {k: ('old' if v > 40 else 'young')
    for (k, v) in original_dict.items()}
print(new_dict_1)

출력 결과

{'jack': 'young', 'michael': 'old', 'guido': 'old', 'john': 'young'}

이 경우, 새 딕셔너리를 생성하기 위해 서브 딕셔너리 이해를 사용합니다.

가격이 크게等于40의 상품의 값은 'old'이고, 다른 상품의 값은 'young'입니다.

내장 딕셔너리 이해

딕셔너리 이해를 딕셔너리 이해에 추가하여 내장 딕셔너리를 만들 수 있습니다. 예를 들어 보겠습니다.

예제7:두 개의 딕셔너리 이해를 가진 내장 딕셔너리

dictionary = {
    k1: {k2: k1 * k2 for k2 in range(1, 6)} for k1 in range(2, 5)
}
print(dictionary)

출력 결과

{2: {1: 2, 2: 4, 3: 6, 4: 8, 5: 10}, 
3: {1: 3, 2: 6, 3: 9, 4: 12, 5: 15},
4: {1: 4, 2: 8, 3: 12, 4: 16, 5: 20}}

그리고如您이看到的 것처럼, 우리는 내장 딕셔너리에서 곱셈 테이블을 만들어 사용합니다.2까지4의 숫자.

내장 딕셔너리 이해를 사용할 때마다 파이썬은 먼저 외부 루프에서 시작하고 그 다음 내부 루프로 이동합니다.

따라서, 위의 코드는 다음과 동일합니다:

dictionary = dict()
for k1 in range(11, 16) :
    dictionary[k1] = {k2: k1*k2 for k2 in range(1, 6)}
print(dictionary)

이를 추가로 확장할 수 있습니다:

dictionary = dict()
for k1 in range(11, 16) :
    dictionary[k1] = dict()
    for k2 in range(1, 6) :
        dictionary[k1][k2] = k1*k2
print(dictionary)

이 세 가지 프로그램은 모두 동일한 출력을 제공합니다.

딕셔너리 이해 사용의 장점

그리고 우리가 보았듯이, 딕셔너리 이해는 딕셔너리 초기화 과정을 크게 단축합니다. 이는 코드에 파이썬 스타일을 더합니다.

우리의 코드에서 딕셔너리 이해를 사용하면 코드 행을 줄이면서도 논리를 유지할 수 있습니다.

딕셔너리 이해 사용 시 주의사항

딕셔너리 이해는 코드를 쉽게 읽을 수 있는 우아한 코드를 작성하는 데 매우 유용하지만, 항상 올바른 선택이 아닙니다.

이를 사용하여:

  • 때로는 코드의 실행 속도를 느리게 하고 더 많은 메모리를 소비할 수 있습니다.

  • 이는 코드의 가독성을 저하시킬 수 있습니다.

코드를 단一行으로 만들기 위해 어려운 로직이나 많은 딕셔너리 이해를 추가하려는 것은 절대 아니어야 합니다. 이러한 경우, 예를 들어 루프와 같은 다른 대체 방법을 선택하는 것이 좋습니다.