파이썬 딕셔너리 반복하는 방법
파이썬에서 딕셔너리 반복하기
딕셔너리 반복에 대한 튼튼한 지식은 더 나은, 견고한 코드를 작성하는 데 도움이 됩니다. 딕셔너리 반복을 통해 딕셔너리를 처리하는 다양한 예제를 작성하며 실습을 진행하겠습니다.
파이썬 딕셔너리 반복 시작하기
딕셔너리 반복에 대한 실습을 시작하기 전에 딕셔너리에 대한 기본 지식을 갖고 있어야 합니다. 딕셔너리는 키-값 쌍으로 구성되어 있으며 중괄호({})를 사용하여 생성합니다. 예를 들어, 다음과 같이 딕셔너리를 만들 수 있습니다:
이제 우리는 이 딕셔너리를 사용하여 반복을 할 수 있습니다.
딕셔너리 직접 반복하기
가장 간단한 방법으로, 딕셔너리를 직접 반복할 수 있습니다. 이 경우에는 딕셔너리의 키만을 순회하며 반복하게 됩니다.
결과:
위의 예제에서는 딕셔너리의 각 키를 순회하여 출력합니다. 하지만 이렇게 하면 딕셔너리의 값에는 접근할 수 없습니다. 값을 사용하려면 .get()
메서드를 사용해야 합니다.
딕셔너리 key-value 쌍 반복하기: .items()
메서드
딕셔너리의 key와 value를 함께 반복하려면 .items()
메서드를 사용합니다. 이 메서드를 사용하면 반복문 변수에 key와 value의 쌍이 튜플로 할당됩니다.
결과:
.items()
메서드를 사용하면 딕셔너리의 키와 값 모두에 접근할 수 있습니다.
딕셔너리의 키를 반복하기: .keys()
메서드
만약 딕셔너리의 키(key)만을 반복하고 싶다면 .keys()
메서드를 사용합니다.
결과:
위의 예제에서는 keys()
메서드를 사용하여 딕셔너리의 키만 반복합니다. 이렇게 하면 각 키에 직접 접근할 수 있습니다.
딕셔너리의 값(value)을 반복하기: .values()
메서드
딕셔너리의 값(value)만을 반복하고 싶다면 .values()
메서드를 사용합니다.
결과:
위의 예제에서는 .values()
메서드를 사용하여 딕셔너리의 값만 반복합니다. 이렇게 하면 딕셔너리의 각 값에 직접 접근할 수 있습니다.
딕셔너리 반복 중 값 변경하기
딕셔너리를 반복하면서 값을 변경해야 하는 경우가 종종 있습니다. 이때는 일반적인 반복 문법을 사용하면 안 됩니다. 대신에, .items()
메서드를 사용하여 반복해야 합니다.
결과:
위의 예제에서는 딕셔너리를 반복하면서 ‘age’ 키가 있는 경우에만 값을 1 증가시킵니다.
딕셔너리 반복 중 안전하게 아이템 제거하기
딕셔너리를 반복하면서 특정 조건을 만족하는 아이템을 제거해야 할 때는 주의해야 합니다. 일반적으로 딕셔너리를 반복하면서 아이템을 삭제하면 오류가 발생합니다. 이를 예방하기 위해서는 .copy()
메서드를 사용하거나, .items()
메서드로 구조적으로 변경해야 합니다.
결과:
결과:
위의 예제에서는 딕셔너리를 반복하면서 ‘age’ 키에 해당하는 값이 30보다 큰 경우에만 아이템을 제거합니다. 이를 위해 .copy()
메서드나 .items()
메서드를 사용하여 안전하게 반복하고 제거했습니다.
for 문을 사용한 딕셔너리 반복 예제
이제 for 문을 사용하여 딕셔너리를 반복하는 몇 가지 예제를 살펴보겠습니다.
값에 따라 아이템 필터링하기
결과:
위의 예제에서는 ‘New York’ 값을 가지고 있는 아이템의 키를 출력합니다.
키와 값으로 계산하기
위의 예제에서는 각 과일의 가격을 입력받고, 사용자가 원하는 과일의 수량을 입력하여 총 가격을 계산합니다.
키와 값 교환하기
결과:
위의 예제에서는 딕셔너리의 키와 값의 위치를 서로 교환하여 새로운 딕셔너리를 생성합니다.
딕셔너리 컴프리헨션을 사용한 반복 예제
파이썬에는 리스트 컴프리헨션처럼 딕셔너리 컴프리헨션도 제공됩니다. 이를 사용하면 더 간단하고 간결한 코드를 작성할 수 있습니다. 몇 가지 예제를 살펴보겠습니다.
값에 따라 아이템 필터링하기: 재방문
결과:
위의 예제에서는 값이 30인 아이템만 딕셔너리에 남겨두고 필터링합니다.
키와 값을 교환하기: 재방문
결과:
위의 예제에서는 딕셔너리의 키와 값의 위치를 서로 교환하여 새로운 딕셔너리를 생성합니다.
정렬된 순서로 딕셔너리 반복하기
딕셔너리의 아이템을 정렬된 순서로 반복해야 할 때도 있습니다. 이를 위해 몇 가지 방법을 살펴보겠습니다.
정렬된 키를 반복하기
결과:
위의 예제에서는 .keys()
메서드로 딕셔너리의 키를 가져와 정렬한 후 반복합니다.
정렬된 값들을 반복하기
결과:
위의 예제에서는 .values()
메서드로 딕셔너리의 값을 가져와 정렬한 후 반복합니다.
컴프리헨션과 함께 딕셔너리 정렬하기
결과:
위의 예제에서는 sorted()
함수의 key
매개변수를 사용하여 딕셔너리를 값을 기준으로 정렬하고, 이를 컴프리헨션과 함께 새로운 딕셔너리로 생성합니다.
.popitem()
메서드를 사용한 딕셔너리 반복
.popitem()
메서드를 사용하면 딕셔너리를 반복하면서 아이템을 제거할 수 있습니다. 이 메서드는 가장 최근에 추가된 아이템부터 반복하며, 한 번에 하나씩 아이템을 꺼내옵니다.
결과:
위의 예제에서는 .popitem()
메서드를 사용하여 딕셔너리를 반복하면서 아이템을 제거합니다.
내장 함수를 사용한 딕셔너리 반복
내장 함수인 map()
및 filter()
를 사용하면 딕셔너리를 반복하면서 여러 작업을 수행할 수 있습니다.
map()
함수를 사용하여 딕셔너리의 아이템 변환하기
결과:
위의 예제에서는 map()
함수와 람다 함수를 사용하여 모든 아이템의 가격을 10% 할인한 딕셔너리를 생성합니다.
filter()
함수를 사용하여 딕셔너리의 아이템 필터링하기
결과:
위의 예제에서는 filter()
함수와 람다 함수를 사용하여 가격이 0.5보다 작은 아이템만 포함한 딕셔너리를 생성합니다.
여러 개의 딕셔너리를 하나로 반복
여러 개의 딕셔너리를 하나로 합쳐서 반복해야 하는 경우가 종종 있습니다. 이러한 경우 ChainMap
또는 chain()
을 사용할 수 있습니다.
ChainMap
을 사용하여 여러 개의 딕셔너리 반복하기
결과:
위의 예제에서는 ChainMap
을 사용하여 person1
과 person2
딕셔너리를 하나로 합칩니다. 그 후 반복문을 사용하여 모든 아이템을 출력합니다.
chain()
을 사용하여 여러 개의 딕셔너리 반복하기
결과:
위의 예제에서는 chain()
을 사용하여 person1
과 person2
딕셔너리의 아이템을 하나로 결합합니다. 그 후 반복문을 사용하여 모든 아이템을 출력합니다.
복수의 딕셔너리 루프하기: Unpacking 연산자 (**)
복수의 딕셔너리를 반복하고 싶은 경우 **
연산자를 사용할 수 있습니다. 이를 이용하면 두 개 이상의 딕셔너리를 하나로 합치고 반복할 수 있습니다.
결과:
위의 예제에서는 **
연산자를 사용하여 user1
과 user2
딕셔너리를 합칩니다. 그 후 반복문을 사용하여 모든 아이템을 출력합니다.
주요 포인트
이 튜토리얼에서는 파이썬에서 딕셔너리를 반복하는 다양한 방법을 알아보았습니다. 다음은 주요 요점입니다:
- 딕셔너리를 직접 반복하려면
for
문을 사용합니다. .items()
메서드로 딕셔너리의 key-value 쌍을 반복할 수 있습니다..keys()
메서드로 딕셔너리의 키를 반복할 수 있습니다..values()
메서드로 딕셔너리의 값들을 반복할 수 있습니다.- 딕셔너리를 반복하면서 값을 변경 또는 삭제해야 하는 경우 주의해야 합니다.
ChainMap
또는chain()
을 사용하여 여러 개의 딕셔너리를 하나로 합쳐서 반복할 수 있습니다.**
연산자를 사용하여 두 개 이상의 딕셔너리를 하나로 합치고 반복할 수 있습니다.
이 튜토리얼에서는 패키지 및 라이브러리를 사용하지 않고 파이썬 내장 기능만 사용하여 딕셔너리를 반복하는 방법을 알아보았습니다. 이를 활용하여 더욱 효율적이고 유연한 프로그램을 작성할 수 있습니다.