python max 함수의 매개변수
python max 함수의 매개변수
max의 매개변수
- max(iterable, *, key=None)
- max(iterable, *, default, key=None)
- max(arg1, arg2, *args, key=None)
iterable에서 가장 큰 항목 또는 두 개 이상의 매개변수 중 가장 큰 항목을 반환한다.
하나의 매개변수가 주어지면 iterable이어야 한다.
max(1, 3, 7, 200, 99, 4, 1125, 9)
1125
lst = [1, 3, 7, 200, 99, 4, 1125, 9]
max(lst)
1125
- 선택적 매개변수 key
list.sort()에서 사용한 것과 같이 단일 매개변수의 정렬 기준이 되는 함수를 지정한다.
lst = [('A',334), ('B',23), ('C',993), ('D',8)]
max(lst, key=lambda x:x[1])
('C', 993)
- 선택적 매개변수 default
이 포스트를 작성한 이유이다.
제공된 iterable이 비었을 경우 반환할 객채를 지정한다.
빈 iterable이 제공되고 default가 비었을 경우 ValueError가 발생한다.
lst = []
max(lst)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[4], line 2
1 lst = []
----> 2 max(lst)
ValueError: max() arg is an empty sequence
lst = []
max(lst, default=0)
0
예제문제
프로그래머스 땅따먹기
위의 문제를 해결하기 위한 코드를 작성하다가 슬라이싱한 리스트에서 최대값을 구하려고 했다.
하지만 어떤 경우에 슬라이싱한 리스트가 비어있는 경우도 있어서 max()를 사용할 경우 ValueError가 발생했다.
빈 리스트가 생기지 않게 리스트들을 합치는 과정을 넣어도 되지만 새 리스트를 만드는 것은 리소스 낭비이므로 max()에서 해결해보고자 찾아봤다.
lst = [[1, 2, 3, 5], [5, 6, 7, 8], [4, 3, 2, 1]]
# 특정 index(j)에 해당하는 값을 제외한 값들 중에 max
for i in range(1, len(lst)):
for j in range(4):
print(f'제외idx:{j}, {i}번째 줄의 max값:{max(max(lst[i-1][:j], default=0), max(lst[i-1][j+1:], default=0))}')
제외idx:0, 1번째 줄의 max값:5
제외idx:1, 1번째 줄의 max값:5
제외idx:2, 1번째 줄의 max값:5
제외idx:3, 1번째 줄의 max값:3
제외idx:0, 2번째 줄의 max값:8
제외idx:1, 2번째 줄의 max값:8
제외idx:2, 2번째 줄의 max값:8
제외idx:3, 2번째 줄의 max값:7
Reference
- Python 3.11.4 documentation: Built-in Functions max
댓글남기기