Obtention de l'index des valeurs Max/Min renvoyées par max()/min() sur les listes
Lors de l'utilisation de max() et de Python min() fonctionne sur des listes pour des algorithmes comme minimax, il est souvent nécessaire de déterminer l'index de la valeur maximale ou minimale renvoyée.
Problème :
Vous devez trouver le index de l'élément dans une liste qui correspond à la valeur max() ou min() renvoyée, pour identifier quel mouvement a produit cette valeur.
Solution :
À récupérez l'index de la valeur min(), utilisez le code suivant :
<code class="python">index_min = min(range(len(values)), key=values.__getitem__)</code>
Cette méthode élimine le besoin de modules comme Operator ou Enumerate, et elle surpasse également les solutions impliquant itemgetter().
Pour les tableaux numpy, pensez à utiliser :
<code class="python">import numpy as np index_min = np.argmin(values)</code>
C'est plus rapide si la liste est suffisamment grande et que la consommation de mémoire est acceptable.
Benchmark :
Le benchmark ci-dessous compare l'efficacité des deux solutions proposées :
[Image montrant un graphique avec les temps d'exécution des différentes méthodes]
La ligne bleue représente la solution Python pure, tandis que la la ligne rouge utilise numpy. La ligne noire est l'implémentation de référence utilisant itemgetter().
Pour les grandes listes, la solution numpy est nettement plus rapide. Cependant, pour des listes plus petites, la solution Python pure peut être plus efficace.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!