Abrufen des Index der von max()/min() für Listen zurückgegebenen Max/Min-Werte
Bei Verwendung von Pythons max() und min()-Funktionen auf Listen für Algorithmen wie Minimax, oft ist es notwendig, den Index des zurückgegebenen Maximal- oder Minimalwerts zu bestimmen.
Problem:
Sie müssen den finden Index des Elements in einer Liste, das dem zurückgegebenen max()- oder min()-Wert entspricht, um zu identifizieren, welche Bewegung diesen Wert erzeugt hat.
Lösung:
An Um den Index des min()-Werts abzurufen, verwenden Sie den folgenden Code:
<code class="python">index_min = min(range(len(values)), key=values.__getitem__)</code>
Diese Methode macht Module wie Operator oder Enumerate überflüssig und übertrifft auch Lösungen mit itemgetter().
Erwägen Sie für Numpy-Arrays die Verwendung von:
<code class="python">import numpy as np index_min = np.argmin(values)</code>
Dies ist schneller, wenn die Liste groß genug ist und der Speicherverbrauch akzeptabel ist.
Benchmark:
Der folgende Benchmark vergleicht die Effizienz der beiden vorgeschlagenen Lösungen:
[Bild zeigt ein Diagramm mit Laufzeiten für die verschiedenen Methoden]
Die blaue Linie stellt die reine Python-Lösung dar, während die Rote Linie verwendet Numpy. Die schwarze Linie ist die Referenzimplementierung mit itemgetter().
Bei großen Listen ist die Numpy-Lösung deutlich schneller. Für kleinere Listen ist die reine Python-Lösung jedoch möglicherweise effizienter.
Das obige ist der detaillierte Inhalt vonWie kann man den Index der Max/Min-Werte in Python-Listen effizient finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!