-
파이썬 딕셔너리 루프 - 파이썬 딕셔너리 순회하기 (Python Dictionary Iteration)Python 2021. 1. 1. 21:29반응형
파이썬 딕셔너리는 다양한 상황에서 많이 사용됩니다. 파이썬 3.6 버젼 이후, 딕셔너리 순서가 보장되면서 루프 안에서도 더 많이 되고 있는데요.
루프 안에서 파이썬 딕셔너리를 사용하는 기본적인 4가지 방법을 알아보겠습니다.
루프 안에서 파이썬 딕셔너리 사용하기: 4가지
for, List Comprehension과 같은 순회 시에, 파이썬 딕셔너리는 아래와 같은 4가지 방법으로(뷰에 접근하여) 가능합니다:
- Keys view를 통해 키에 직접 접근하기
- .items()를 통해 키와 값에 접근하기
- .keys()를 통해 키에 접근하기
- .values()를 통해 값에 접근하기
728x90Keys를 통해 키에 직접 접근하기
딕셔너리를 그대로 순회하는 방법을 통해 아래와 같이 키에 접근할 수 있습니다:
a_dict = {"name": "kaden", "age": 30, "job": "dataengineer"} for key in a_dict: print(key) # 출력 name age job
파이썬은 순회(Iteration) 시에, 순회하려는 대상 객체의 __iter__() 함수를 호출하여 iterator를 얻어 순회하게 됩니다.
그렇기에 아래와 같이 dir 내장함수로 객체 속성을 탐색 시, __iter__ 함수를 확인할 수 있습니다.
a_dict = {} dir(a_dict) # 출력 ['__class__', ... , '__iter__', ...]
.items()를 통해 키와 값에 접근하기
아래와 같이 딕셔너리 객체에 .items() 함수를 실행하여 키와 값에 접근할 수 있습니다:
a_dict = {"name": "kaden", "age": 30, "job": "dataengineer"} for key, value in a_dict.items(): print(key, value) # 출력 name kaden age 30 job dataengineer
딕셔너리 객체에 items() 함수를 실행하고 type 내장함수를 통해 타입을 살펴보면, cpython의 dict_items 함수를 실행하여 리턴되는 dict_items 타입인 부분을 확인할 수 있습니다.
a_dict = {} type(a_dict.items()) # 출력 dict_items
.keys()를 통해 키에 접근하기
맨 처음의 Keys를 통한 직접 접근하는 방법과 같이 딕셔너리에 .keys() 함수를 실행하여 키에 접근할 수 있습니다:
a_dict = {"name": "kaden", "age": 30, "job": "dataengineer"} for key in a_dict.keys(): print(key) # 출력 name age job
.values()를 통해 값에 접근하기
값에만 접근하여 사용하려고 할 때에는, .values()에 바로 접근하여 사용할 수 있습니다(PyDictValues_Type):
a_dict = {"name": "kaden", "age": 30, "job": "dataengineer"} for value in a_dict.values(): print(value) # 출력 kaden 30 dataengineer
같은 결과를 키를 통해 접근할 때에는 코드가 길어지게 됩니다:
a_dict = {"name": "kaden", "age": 30, "job": "dataengineer"} for key in a_dict: print(a_dict[key])
Reference
[1] Github - CPython Internals Dict
반응형'Python' 카테고리의 다른 글
프로그래밍 언어와 파이썬 (2) 2021.05.19 파이썬 int 내부구조 (Python int Internals) (0) 2021.02.22 파이썬 리스트 내부구조 (Python List Internals) (0) 2021.02.13 파이썬 클래스 내부구조 (Python Class Internals) (0) 2021.01.25 파이썬으로 구글 시트 생성 후 다른 유저에게 공유하기 (0) 2021.01.16 파이썬 튜플 내부구조 (Python Tuple Internals) (0) 2021.01.12 파이썬 딕셔너리 내부구조와 관련 개념 살펴보기 (Python Dictionary Internals and relating concepts) (1) 2021.01.04 코딩초보 파이썬(Python) 공부법, 공부자료 (파이썬입문, 파이썬강좌) (0) 2020.11.23