list중 n개의 최솟값 반환
from copy import deepcopy
# deepcopy는 새로운 객체(변수)를 만든 뒤에 원본의 복사본을 변수에 입력한다.(참조X)
def min_n(lst, n=1):
numbers = deepcopy(lst)
numbers.sort()
# 오름차순 정렬
return numbers[:n]
# index n전까지 반환
if __name__ == '__main__':
print(min_n([1, 2, 3], 2))
# 2개의 최솟값 출력
>>> python min_n.py
[1, 2]
dramatic님께서 알려주신 방법으로 다시 해보았다! (2020-05-07추가)
def new_min_n(lst, n=1): numbers = sorted(lst) return numbers[:n]
두개 모두 같은결과 알려주신 방법이 확실히 더 간략하다!
sorted 함수를 이용하면 deepcopy 할 필요없이 정렬된 리스트를 반환해줍니다!