for 문을 사용하여 Python 사전 개체의 요소를 반복하려면 사전 개체에서 다음 메서드를 사용합니다. 이 메서드는 list()와 결합하여 사전의 모든 키 및 값 목록을 얻을 수도 있습니다.
keys()
:각 요소 키에 대한 루프 처리values()
:각 요소 값에 대한 루프 처리items()
:각 요소의 키와 값에 대한 루프 처리
다음 사전 개체는 예입니다.
d = {'key1': 1, 'key2': 2, 'key3': 3}
for 문에서 사전 객체를 그대로 돌려 키를 얻을 수 있습니다.
for k in d: print(k) # key1 # key2 # key3
keys():각 요소 키에 대한 루프 처리
위에서 언급한 것처럼 딕셔너리 객체를 for 문에서 그대로 돌려서 키를 얻을 수 있지만 keys() 메서드를 사용할 수도 있습니다.
for k in d.keys(): print(k) # key1 # key2 # key3
keys() 메서드는 dict_keys 클래스를 반환합니다. 목록을 만들고 싶다면 list() 함수를 사용할 수 있습니다.
keys = d.keys() print(keys) print(type(keys)) # dict_keys(['key1', 'key2', 'key3']) # <class 'dict_keys'> k_list = list(d.keys()) print(k_list) print(type(k_list)) # ['key1', 'key2', 'key3'] # <class 'list'>
DICT_KEYS는 설정 작업을 수행할 수 있습니다.
values():각 요소 값에 대한 루프 처리
각 요소 값에 대해 for-loop 처리를 수행하려면 values() 메서드를 사용하십시오.
for v in d.values(): print(v) # 1 # 2 # 3
values() 메서드는 dict_values 클래스를 반환합니다. 목록을 만들고 싶다면 list() 함수를 사용할 수 있습니다.
values = d.values() print(values) print(type(values)) # dict_values([1, 2, 3]) # <class 'dict_values'> v_list = list(d.values()) print(v_list) print(type(v_list)) # [1, 2, 3] # <class 'list'>
값이 겹칠 수 있으므로 dict_values의 설정 작업은 지원되지 않습니다.
items():각 요소의 키와 값에 대한 루프 처리
각 요소의 키와 값 모두에 대해 for 루프 프로세스를 수행하려면 items() 메서드를 사용합니다.
for k, v in d.items(): print(k, v) # key1 1 # key2 2 # key3 3
(key, value)
따라서 튜플로 받을 수 있습니다.
for t in d.items(): print(t) print(type(t)) print(t[0]) print(t[1]) print('---') # ('key1', 1) # <class 'tuple'> # key1 # 1 # --- # ('key2', 2) # <class 'tuple'> # key2 # 2 # --- # ('key3', 3) # <class 'tuple'> # key3 # 3 # ---
items() 메서드는 dict_items 클래스를 반환합니다. 목록을 만들고 싶다면 list() 함수를 사용할 수 있습니다. 각 요소는 튜플입니다.(key, value)
items = d.items() print(items) print(type(items)) # dict_items([('key1', 1), ('key2', 2), ('key3', 3)]) # <class 'dict_items'> i_list = list(d.items()) print(i_list) print(type(i_list)) # [('key1', 1), ('key2', 2), ('key3', 3)] # <class 'list'> print(i_list[0]) print(type(i_list[0])) # ('key1', 1) # <class 'tuple'>
DICT_ITEMS는 집합 작업도 수행할 수 있습니다.