Comment trouver efficacement l'index des valeurs Max/Min dans les listes Python ?

Barbara Streisand
Libérer: 2024-10-29 18:24:14
original
617 Les gens l'ont consulté

 How to Efficiently Find the Index of Max/Min Values in Python Lists?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal