3.1 하위 요소 보기
이미 알고 있다시피, 딕셔너리는 내부에 key-value 쌍을 저장합니다. 이 데이터에 접근할 수 있게 해주는 메소드가 있어: keys(), values(), items(). 아래서 좀 더 자세히 이야기할게.
중요! 이 메소드들은 단순한 목록이 아니라 이른바 뷰(view)를 반환합니다. 딕셔너리 뷰는 딕셔너리 안에 있는 키, 값, 그리고 키-값 쌍에 대한 동적 뷰를 제공합니다. 이 뷰는 딕셔너리가 변경될 때 자동으로 업데이트됩니다.
메소드 keys()
keys() 메소드는 딕셔너리 안의 모든 키에 대한 뷰를 반환합니다. 결과는 dict_keys 객체이며, 이 객체는 반복 및 기타 집합과 유사한 작업을 지원해줍니다.
person = {"name": "Alice", "age": 25, "city": "New York"}
keys = person.keys()
print(keys) # dict_keys(['name', 'age', 'city'])
키별 반복
for key in person.keys():
print(key)
# 출력: # name # age # city
메소드 values()
values() 메소드는 딕셔너리 안의 모든 값에 대한 뷰를 반환합니다. 결과는 dict_values 객체이며, 이 객체도 반복을 지원해줍니다.
person = {"name": "Alice", "age": 25, "city": "New York"}
values = person.values()
print(values) # dict_values(['Alice', 25, 'New York'])
값별 반복
for value in person.values():
print(value)
# 출력: # Alice # 25 # New York
메소드 items()
items() 메소드는 딕셔너리 안의 모든 키-값 쌍에 대한 뷰를 반환합니다. 결과는 dict_items 객체이며, 이 객체는 반복 작업을 지원합니다.
person = {"name": "Alice", "age": 25, "city": "New York"}
items = person.items()
print(items) # dict_items([('name', 'Alice'), ('age', 25), ('city', 'New York')])
키-값 쌍별 반복
for key, value in person.items():
print(f"{key}: {value}")
# 출력: # name: Alice # age: 25 # city: New York
3.2 동적 업데이트
딕셔너리 뷰의 중요한 특성 중 하나는 동적 업데이트입니다. 즉, 딕셔너리가 변경되면 뷰는 자동으로 그 변화를 반영합니다.
person = {"name": "Alice", "age": 25}
keys = person.keys()
print(keys) # dict_keys(['name', 'age'])
# 새로운 요소 추가
person["city"] = "New York"
print(keys) # dict_keys(['name', 'age', 'city'])
뷰를 다른 컬렉션으로 변환하기
딕셔너리 뷰는 추가 작업을 위해 리스트, 집합, 또는 튜플 같은 다른 컬렉션으로 변환할 수 있습니다.
person = {"name": "Alice", "age": 25, "city": "New York"}
# keys()를 리스트로 변환
keys_list = list(person.keys())
print(keys_list) # ['name', 'age', 'city']
# values()를 집합으로 변환
values_set = set(person.values())
print(values_set) # {'Alice', 25, 'New York'}
# items()를 튜플 리스트로 변환
items_list = list(person.items())
print(items_list) # [('name', 'Alice'), ('age', 25), ('city', 'New York')]
GO TO FULL VERSION