heapq 모듈에 있는 nlargest()와 nsmallest() 함수를 사용해서 최대 or 최소값을 찾을 수 있다.
기본적인 함수 형태
heapq.nlargest(n, iterable, key=None)
heapq.nsmallest(n, iterable, key=None)
사용
>>> import heapq
>>> nums = [1, 3, 6, 34, 5, 22, 67, -3, 56, -9]
>>> print(heapq.nlargest(5, nums))
[67, 56, 34, 22, 6]
>>> print(heapq.nsmallest(3, nums))
[-9, -3, 1]
key 파라미터를 사용해 보겠다.
>>> data = [
{'title': 'Sams', 'famous': 100, 'price':230.0},
{'title': 'LZ', 'famous': 81, 'price':120.56},
{'title': 'Hyun', 'famous': 90, 'price':225.78},
{'title': 'Ki', 'famous': 50, 'price':130.53},
{'title': 'Dea', 'famous': 30, 'price':80.99}
]
>>> cheapest = heapq.nsmallest(3, data, key=lambda t: t['price'])
>>> print(cheapest)
[{'famous': 30, 'price': 80.99, 'title': 'Dea'}, {'famous': 81, 'price': 120.56, 'title': 'LZ'}, {'famous': 50, 'price': 130.53, 'title': 'Ki'}]
람다를 사용해서 키값을 설정했다.
가장 작은 키값부터 차례로 나열된다.
'IT > Python' 카테고리의 다른 글
problem using nltk.pos_tag() in nltk (0) | 2014.12.19 |
---|---|
정규표현식 python re r' (raw string) (2) | 2014.12.19 |
Python Regular Expressions (0) | 2014.12.19 |
str.startswith()와 str.endswith()를 사용해서 문자열의 처음 텍스트나 마지막 텍스트 매칭 (0) | 2014.12.19 |
deque 연습하기 (0) | 2014.12.19 |