Comment accéder efficacement à plusieurs éléments de liste par index en Python ?

Susan Sarandon
Libérer: 2024-11-21 04:24:17
original
439 Les gens l'ont consulté

How to Efficiently Access Multiple List Elements by Index in Python?

Accès à plusieurs éléments de liste par index : explorer des solutions efficaces

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

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

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

É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!

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