반응형
리스트에서 min()함수와 max()함수로 최솟값과 최댓값을 구할 수 있었습니다.
만약 상품명과 가격이 담겨 있는 딕셔너리에서 상품명으로 가격의 최솟값과 최댓값을 구하려면 어떻게 할까요.
딕셔너리의 키 를 활용합니다.
min() 함수와 max()함수에는 '어떤 값으로 비교'할 것인지 나타내는 key 라는 키워드 매개변수를 지정할 수 있습니다.
우선 상품들이 담겨있는 딕셔너리를 생성해줍니다.
딕셔너리는 { key : 값 }의 형태로 저장해요.
items = [{
"상품": "어제 먹다 남은 파이",
"가격": 21000
}, {
"상품": "크리스마스 에디션 밤조림",
"가격": 45000
}, {
"상품": "우주대폭발 버튼",
"가격": 72000
}]
상품을 모두 items 라고 하는 딕셔너리에 넣었다면 이제 최솟값과 최댓값으로
가장 저렴한 상품과 가장 비싼 상품을 구분해볼게요.
def price(item): -> 딕셔너리에서 가격값을 추출하는 함수를 만듭니다.
return item["가격"]
print("# 가장 저렴한 상품") -> 가격값을 비교해서 최솟값을 구합니다.
print(min(items, key=price))
print()
print("# 가장 비싼 상품") -> 가격값을 비교해서 최댓값을 구합니다.
print(max(items, key=price))
결과값은 이렇게 나옵니다.
그럼 여기서 함수를 따로 만들었던 것을 min ()안에 직접 넣어볼게요.
이 때 콜백 함수를 람다lambda 로 바꾸면 함수를 따로 생성하지 않아도 됩니다.
items = [{
"상품": "어제 먹다 남은 파이",
"가격": 21000
}, {
"상품": "크리스마스 에디션 밤조림",
"가격": 45000
}, {
"상품": "우주대폭발 버튼",
"가격": 72000
}]
print("# 가장 저렴한 상품")
print(min(items, key=lambda book : book["가격"]))
print()
print("# 가장 비싼 상품")
print(max(items, key=lambda book : book["가격"))
반응형
'파이썬 > 파이썬 입문 공부일지' 카테고리의 다른 글
[VS Code] Mac, window 맥 윈도우 단축키 모음 (0) | 2024.05.27 |
---|---|
파이썬 공부일지 20. 파일처리! (0) | 2022.10.19 |
파이썬 공부일지 19. 함수 활용 (튜플, 람다)! (0) | 2022.10.18 |
파이썬 공부일지 18. 함수의 활용(재귀함수)! (1) | 2022.10.14 |
파이썬 공부일지 17. 함수 만들기! (0) | 2022.10.14 |