<aside> 💡

Key와 Value 추가하기

# city_population 딕셔너리에 '제주' 정보를 추가하고 출력하는 코드입니다.
# 빈칸에 들어갈 코드를 완성하세요!

city_population = {'서울': 970, '부산': 340}
city_population['제주'] = 67
print(city_population)
Key Value
서울 970
부산 340
제주 67

</aside>

<aside> 💡

in 키워드 사용


</aside>

<aside> 💡

딕셔너리 자료형에서 값을 꺼내는 2가지 방법 : dict[ ]dict.get( )

table_dict = {'a':1,'b':2,'c':3}

# 첫 번째
table_dict['a'] >>> 1

# 두 번째
table_dict.get['b'] >>> 2

key 값이 있는 경우, 두 코드는 동일하게 작동한다. 하지만 첫 번째 코드는 찾고자하는 key가 없을 때 KeyError가 나온다.

# 첫 번째
table_dict['d]
>>> KeyError: 'd'

하지만 get() 메서드를 사용하면 존재하지 않은 key에 대해 예외를 던지지 않고 None을 리턴하기 때문에 Error를 피할 수 있다.

table_dict.get('d')
>>> none

딕셔너리의 get() 메서드는 두 개의 인자를 받을 수 있다.

table_dict.get('d',4)
>>> 4

</aside>

<aside> ❓

dict.get( )dict.setdefault( )의 차이

# get() 사용

user_settings = {'theme': 'dark', 'font_size': 14}
language = user_settings.get('language', '한국어') 
print("언어 설정:", language)
print(user_settings)

>>> 언어 설정: 한국어
>>> {'theme': 'dark', 'font_size': 14}

➡️ 딕셔너리에 변화가 없다.

# setdefault() 사용 

user_settings = {'theme': 'dark', 'font_size': 14}
language = user_settings.setdefault('language', '한국어') 
print("언어 설정:", language)
print(user_settings)

>>> 언어 설정: 한국어
>>> {'theme': 'dark', 'font_size': 14, 'language': '한국어'}

➡️ 딕셔너리에 ‘언어 설정’을 key로 하는 value ‘language’ 가 추가되었다.


🧐 추가적으로 궁금한 점

user_settings = {'theme': 'dark', 'font_size': 14}
font_size = user_settings.setdefault('font_size', 20) 
print('font size :', font_size)
print(user_settings)

>>> font size : 14
>>> {'theme': 'dark', 'font_size': 14}

➡️ 기존 딕셔너리 key 값에 매칭되어 있던 value값이 반환되었다.

get( ) setdefault( )
key 가 없을 경우 에러 없이 조회 가능 여부
기본값 반환 여부
key 가 없을 경우,
딕셔너리에 값을 추가하고 싶은 경우
딕셔너리 변경 여부

<aside> 💡

딕셔너리 .pop( )

# contact_info 딕셔너리에서 '이메일' 항목을 삭제하고, 
# 삭제된 값과 변경된 딕셔너리를 출력하는 코드입니다.
# 빈칸에 들어갈 코드를 완성하세요!

contact_info = {'이름': '박영희', '전화번호': '010-1234-5678', '이메일': 'pyh@example.com'}
removed_email = contact_info.pop('이메일')
print("삭제된 이메일:", removed_email)
print("변경된 딕셔너리:",contact_info)

>>> 삭제된 이메일: pyh@example.com
>>> 변경된 딕셔너리: {'이름': '박영희', '전화번호': '010-1234-5678'}

<aside> ❓

퍼포먼스 마케터의 관점에서 해당 메서드를 사용하는 경우는?

ad_creatives = {
    'A': {'CTR': 1.2},
    'B': {'CTR': 0.4},  # 기준 미달
    'C': {'CTR': 1.5}
}

failed_ad = ad_creatives.pop('B')  # 기준 미달 광고 제거

print("제거된 소재:", failed_ad)
print("성과 양호 소재:", ad_creatives)

</aside>

</aside>

<aside> 💡

NONE


</aside>