max()/min()을 사용하여 목록에서 최대값 또는 최소값의 인덱스 찾기
Python의 내장 기능을 사용할 때 minimax 알고리즘에 대한 max() 및 min() 함수를 사용하려면 반환된 최대 또는 최소 항목의 인덱스를 검색해야 합니다. 이를 통해 원하는 값을 생성한 특정 동작을 식별할 수 있습니다.
원본 코드:
<code class="python">for i in range(9): new_board = current_board.new_board_with_move([i / 3, i % 3], player) if new_board: temp = min_max(new_board, depth + 1, not is_min_level) values.append(temp) if is_min_level: return min(values) else: return max(values)</code>
해결책:
최소값 또는 최대값의 인덱스를 얻으려면 다음 접근 방식을 활용하세요.
<code class="python">import functools index_min = min(range(len(values)), key=functools.cmp_to_key(lambda x, y: values[x] - values[y]))</code>
또는 NumPy를 사용하는 것이 가능한 경우:
<code class="python">import numpy as np index_min = np.argmin(values)</code>
벤치마크 결과:
다음 벤치마크 결과는 Python 2.7을 실행하는 시스템에서 얻은 것입니다.
[순수 Python 솔루션(파란색), NumPy 솔루션(빨간색) 및 itemgetter()를 비교한 벤치마크 결과 이미지 기반 솔루션(검정색)]
결론:
권장 솔루션은 추가 모듈을 가져오거나 열거형을 사용할 필요가 없는 솔루션입니다. 대부분의 경우. 그럼에도 불구하고 큰 목록의 경우 NumPy 기반 접근 방식이 최적일 수 있습니다.
위 내용은 다음은 질문과 답변 형식과 기사의 초점을 염두에 두고 몇 가지 제목 옵션입니다. 직접적이고 간결함: * Python 목록에서 최대값 또는 최소값의 인덱스를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!