딕셔너리 구축
- 다음과 같은 리스트가 주어질 때, 각각의 요소의 개수를 value 값으로 갖는 딕셔너리를 만들어라
# 변수명이 book_title인 리스트 생성
book_title = ['great', 'expectations', 'the', 'adventures', 'of', 'sherlock', 'holmes', 'the', 'great', 'gasby', 'hamlet', 'adventures', 'of', 'huckleberry', 'fin']
{'great': 2, 'expectations': 1, 'the': 2, 'adventures': 2, 'of': 2, 'sherlock': 1, 'holmes': 1, 'gasby': 1, 'hamlet': 1, 'huckleberry': 1, 'fin': 1}
# 1. dict[key] 로 접근하는 방법
result = {}
for book in book_title:
if book in result:
result[book] += 1
else:
result[book] = 1
# 2. count 메서드 활용
result = {}
for book in book_title:
if not result.get(book):
# 결과 딕셔너리 안에 해당 키(책 제목) 값이 엎을 때만
result[book] = book_title.count(book)
# 3. get 메서드를 활용
result = dict()
for book in book_title:
result[book] = result.get(book, 0) + 1 # 기존에 없다면 0 + 1 을 , 있다면 기존 value + 1 을 해준다.
# 4. dictionary comprehension
result = {book: book_title.count(book) for book in book_title}
딕셔너리 comprehension
- 다음과 같은 딕셔너리가 있을 때, 조건에 맞게 새로운 딕셔너리를 만들어라
# 변수명이 dusts인 딕셔너리
dusts = {'서울': 72, '인천': 82, '제주': 29, '동해': 45}
- dusts을 통해 미세먼지 농도가 80 초과 지역 값을 가진 딕셔너리 result를 생성하는 코드를 Dictionary comprehension + 조건문을 사용해 작성하라
new_dusts = {key: dusts[key] for key in dusts if dusts[key] > 80}
print(new_dusts)
=> {'인천': 82}
- 미세먼지 농도가 150초과는 '매우나쁨', 80초과는 '나쁨', 30초과는 '보통', 30이하는 '좋음'으로 하는 value를 가지도록 하는 딕셔너리 result를 생성하는 코드를 Dictionary comprehension + 조건문을 사용해 작성하세요
result = {key: ('나쁨' if val > 150 else '나쁨' if val > 80 else '보통' if val > 30 else '좋음') for key, val in dusts.items()}
print(result)
=> {'서울': '보통', '인천': '나쁨', '제주': '좋음', '동해': '보통'}
댓글