2
for k, v in book.items():
if v <= 15000:
book[k] *= 1.1
else:
book[k] *= 1.05
print(book)
먼저 book 딕셔너리의 값이 15,000 이하인지 초과인지를 판단해야겠죠. 이를 판단하는 것은 조건문을 사용하면 됩니다. 그리고 모든 딕셔너리 요소에 조건문을 적용해야 하므로 조건문을 반복문 안에 넣습니다. 반복문에서는 book 딕셔너리의 키와 값을 추출해 각각 변수 k, v에 저장하고 저장된 키와 값이 바뀔 때마다 조건문으로 v를 확인합니다. v가 15000 이하일 때는 book[k] = book[k] * 1.1을 실행해 도서 가격을 10% 인상하고, v가 15000을 초과할 때는 book[k] = book[k] * 1.05를 실행해 도서 가격을 5% 인상합니다. 실행결과는 다음과 같습니다.
실행결과
{'역사대모험': 21000.0, '영단어': 9900.0, '파이썬': 17850.0, '여행에세이': 23100.0, '삼국지': 34650.0}
3
import operator
print(sorted(ranking.items(), key=operator.itemgetter(1), reverse=True))
값을 기준으로 ranking 딕셔너리를 내림차순 정렬하면 득표수가 높은 참가자부터 득표수가 낮은 참가자순으로 정렬할 수 있습니다. 이때 키와 값을 쌍으로 정렬해야 하므로 items()를 사용합니다. 기준이 값이므로 key=operator.itemgetter(1) 옵션을 추가합니다. 또한, 내림차순으로 정렬하도록 reverse=True 옵션도 추가해야 합니다. 실행결과는 다음과 같습니다.
실행결과
[('라이언', 956412), ('니니즈', 861832), ('어피치', 796354), ('프로도', 534840), ('네오', 387896)]