<aside> 💡
Key와 Value 추가하기
# city_population 딕셔너리에 '제주' 정보를 추가하고 출력하는 코드입니다.
# 빈칸에 들어갈 코드를 완성하세요!
city_population = {'서울': 970, '부산': 340}
city_population['제주'] = 67
print(city_population)
| Key | Value |
|---|---|
| 서울 | 970 |
| 부산 | 340 |
| 제주 | 67 |
</aside>
<aside> 💡
in 키워드 사용
key에 한해서 동작한다.key가 딕셔너리 안에 있는지 True/False 값으로 알려준다.
</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() 메서드는 두 개의 인자를 받을 수 있다.
key 값key 가 없을 때 반환할 값을 default로 정할 수 있다.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’ 가 추가되었다.
🧐 추가적으로 궁금한 점
key를 호출하면 어떻게 될까?key가 14로 존재하지만, .setdefault()를 사용하여 20 이라는 default 값을 지정해보았다.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 가 없을 경우, | ||
| 딕셔너리에 값을 추가하고 싶은 경우 | ❌ | ✅ |
| 딕셔너리 변경 여부 | ✅ | ❌ |
get()setdefault( )
</aside><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>