티스토리 뷰

반응형

 

파이썬 min, max 함수

 

- 순서 -

1. max

2. min

3. 매개변수(key, default)

4. dictionary max, min

 


 

1. max( )

max(iterable) 괄호( ) 안에 리스트, 문자 열등 반복 가능한 자료형을 넣으면 가장 큰 값을 반환해준다.

>>> max(-5, 0, 3)
3

>>> max(-5, 3, 0, 3, -5)
3

 

2. min( )

min(iterable)  괄호( ) 안에 리스트, 문자 열등 반복 가능한 자료형을 넣으면 가장 작은 값을 반환해준다.

>>> min(-5, 0, 3)
-5

>>> min(-5, 3, 0, 3, -5)
-5

 

3. Parameter

min, max 모두 key, default 매개변수를 갖고 있다.

 

key

함수를 값으로 넣는다. lambda를 이용할 수 있다. key= function을 기준으로 최대, 최솟값을 찾는다.

 

절댓값을 찾는 함수 abs를 key값으로 넣을 때

>>> min(-5, 3, 0, 3, -5, key=abs)
0

>>> nums = [-5, 3, 0, 3, -5]
>>> max(nums, key=abs)
-5

 

나머지를 구하는 lambda 식을 key 값으로 넣을 때

>>> nums = [-5, 3, 0, 3, -5]
>>> min(nums, key= lambda x : x%3 )
3

>>> max(-5, 3, 0, 3, -5, key= lambda x : x%3 )
-5

 

default

iterable 객체가 비어있는 경우 반환할 값을 지정한다. 

default를 지정하지 않고 iterable이 빈 경우는 ValueError가 발생한다.

>>> bin = []
>>> max(bin, default=10)
10

>>> max(bin)
ValueError: max() arg is an empty sequence

 

 

4. dictionary 자료형

max, min 

max 함수로 예를 든다. min 함수 사용방법도 동일함.

 

dict자료형을 iterable로 넣으면 key값을 기준으로 최대/최소 값을 찾는다.

 

>>> max({1:-5, 5:3, 10:0})
10

>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums.keys())
10

 

value값을 기준으로 최대/최소 값을 찾는 경우

'dict변수. values( )' 형태로 사용한다.

>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums.values())
3

 

value값이 최대/최소인 key값을 출력하려는 경우 max/min 함수의 매개변수 key=function을 이용한다.

 

lamda 식을 function으로 넣어 사용한 예시

>>> dict_nums = {1:-5, 5:3, 10:0}
>>> max(dict_nums, key= lambda x : dict_nums[x]))

dict변수[key값] 형태로 호출할 때, 대괄호[ ] 안의 key값에 해당하는 value값이 출력되는 점을 이용한 lamda 식이다.

 

 

파이 참 문서

max
def max(__iterable: Iterable [_T],
            *,
            key: (_T) -> Any =...,
            default: _VT) -> Union [_T, _VT]
Possible types:
• (__arg1: _T, __arg2: _T, _args: Tuple [_T,...], key: (_T) -> Any) -> _T
• (__iterable: Iterable [_T], Any, key: (_T) -> Any) -> _T
• (__iterable: Iterable [_T], Any, key: (_T) -> Any, default: _VT) -> Union [_T, _VT]
--------------------
max(iterable, *[, default=obj, key=func]) -> value max(arg1, arg2, *args, *[, key=func]) -> value With a single iterable argument, return its biggest item. The default keyword-only argument specifies an object to return if the provided iterable is empty. With two or more arguments, return the largest argument.


min
def min(__iterable: Iterable [_T],
           *,
           key: (_T) -> Any =...,
           default: _VT) -> Union [_T, _VT]
Possible types:
• (__arg1: _T, __arg2: _T, _args: Tuple [_T,...], key: (_T) -> Any) -> _T
• (__iterable: Iterable [_T], Any, key: (_T) -> Any) -> _T
• (__iterable: Iterable [_T], Any, key: (_T) -> Any, default: _VT) -> Union [_T, _VT]
--------------------
min(iterable, *[, default=obj, key=func]) -> value min(arg1, arg2, *args, *[, key=func]) -> value With a single iterable argument, return its smallest item. The default keyword-only argument specifies an object to return if the provided iterable is empty. With two or more arguments, return the smallest argument.

 

반응형
댓글
반응형