전 게시물에서 다뤘던 리스트 컴프리헨션을 딕셔너리에도 적용할 수 있다.

기본적인 틀은 아래와 같다.

new_dict = {키:값 for 아이템 in 리스트}

items() 함수를 사용하여 키와 값을 for 구문의 인자로 쓸 수 있다.

new_dict = {키:값 for (키, 값) in 리스트.items()}

아래 코드와 같이 if 조건문도 함께 사용할 수 있다.

new_dict = {키:값 for (키, 값) in 리스트.items() if 조건문}

딕셔너리 컴프리헨션 코딩 연습

  1. 문자 길이 딕셔너리 만들기

split() 함수로 띄어쓰기로 문장을 나누는 것이 핵심.

sentence = "What is the Airspeed Velocity of an Unladen Swallow?"
split_sentence = sentence.split(" ")
result = {n:len(n) for n in split_sentence}
print(result)

#결과
{'What': 4, 'is': 2, 'the': 3, 'Airspeed': 8, 'Velocity': 8, 'of': 2, 'an': 2, 'Unladen': 7, 'Swallow?': 8}
  1. 위에서 살펴봤던 items()항목으로 키와 값을 반복문으로 가져오는 것이 핵심.
weather_c = {
    "Monday": 12,
    "Tuesday": 14,
    "Wednesday": 15,
    "Thursday": 14,
    "Friday": 21,
    "Saturday": 22,
    "Sunday": 24,
}

weather_f = {key : round(value * 1.8 + 32,1) for (key, value) in weather_c.items()}
print(weather_f)
#결과
{
    'Monday': 53.6,
    'Tuesday': 57.2,
    'Wednesday': 59.0,
    'Thursday': 57.2,
    'Friday': 69.8,
    'Saturday': 71.6,
    'Sunday': 75.2
}