En Python, choisir des éléments spécifiques dans une liste en fonction de leur index peut être une exigence courante. Une question récemment posée abordait ce scénario, présentant une liste d'entiers a et une liste d'indices b. L'objectif était de créer une nouvelle liste c contenant des éléments de a correspondant aux indices de b.
La solution fournie utilisait une compréhension de liste qui parcourt les indices de b et sélectionne les éléments appropriés dans a :
a = [-2, 1, 5, 3, 8, 5, 6] b = [1, 2, 5] c = [a[i] for i in b]
Bien que cette approche soit parfaitement valable, la question s'est posée de savoir s'il existe des méthodes plus efficaces pour atteindre l'objectif souhaité. résultat.
Operator.itemgetter
Une solution alternative implique l'utilisation de la fonction Operator.itemgetter du module opérateur de Python :
from operator import itemgetter a = [-2, 1, 5, 3, 8, 5, 6] b = [1, 2, 5] print(itemgetter(*b)(a))
Indexation de tableaux Numpy
Pour les cas où les performances sont critiques, NumPy offre des capacités optimisées de gestion des tableaux :
import numpy as np a = np.array([-2, 1, 5, 3, 8, 5, 6]) b = [1, 2, 5] print(list(a[b]))
Évaluation des solutions
Notamment, la solution originale utilisant la compréhension de liste reste une option viable. C’est concis et facile à comprendre. Les méthodes itemgetter et NumPy, tout en offrant des avantages potentiels en termes de performances, peuvent s'avérer excessives pour les petites listes ou les situations où la vitesse est moins un problème.
En fin de compte, le choix de la méthode à utiliser dépend de facteurs tels que la taille. de la liste et les exigences de performances spécifiques de l'application.
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!