Lors de la mise en œuvre d'algorithmes comme minimax, déterminer l'index de l'élément maximum ou minimum dans un la liste est cruciale. Les fonctions max() et min() intégrées de Python fournissent ces valeurs, mais elles n'indiquent pas l'index correspondant.
Par exemple, pensez à trouver la valeur minimale et son index dans la liste valeurs = [3, 6, 1, 5]. L'utilisation de min(values) renvoie 1. Pour obtenir l'indice de cette valeur minimale, nous pouvons exploiter les techniques suivantes :
<code class="python">values = [3, 6, 1, 5] index_min = min(range(len(values)), key=values.__getitem__)</code>
Cette méthode consiste à créer un plage d'indices correspondant à la longueur des valeurs de la liste. À l'aide de la fonction key, nous spécifions que la sélection de la valeur minimale doit être basée sur l'élément à chaque index en valeurs. Le résultat, index_min, sera l'index de l'élément minimum.
<code class="python">import numpy as np values = [3, 6, 1, 5] index_min = np.argmin(values)</code>
Si numpy est une dépendance disponible, nous pouvons utiliser argmin(), qui fournit directement l’index de la valeur minimale. Cependant, cela nécessite de convertir la liste Python en un tableau numpy, ce qui implique une copie de mémoire supplémentaire.
Les benchmarks ont montré que la méthode 1 utilisant la fonction key est généralement plus rapide que la méthode 2. avec argmin() de numpy, en particulier pour les petites listes. Cependant, pour les listes plus grandes, argmin() de numpy peut être plus efficace grâce à des calculs vectorisés optimisés.
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!