Python moyen le plus Rapide pour trouver les Index de l'élément dans la liste
Si l'on devait tenter de trouver l'index d'un élément dans une liste, on pourrait faire un couple de différentes manières, voici ce que je sais être le plus rapide
aList = [123, 'xyz', 'zara','xyz', 'abc'];
indices = [i for i, x in enumerate(aList) if x == "xyz"]
print(indices)
Un autre moyen de ne pas pythonic et le ralentissement de la
count = 0
indices = []
aList = [123, 'xyz', 'zara','xyz', 'abc'];
for i in range(0,len(aList):
if 'xyz' == aList[i]:
indices.append(i)
print(indices)
la première méthode est sans doute plus rapide cependant que faire si vous voulez aller plus vite est-il un moyen? pour le premier index de l'aide de la méthode
aList = [123, 'xyz', 'zara','xyz', 'abc'];
print "Index for xyz : ", aList.index( 'xyz' )
est très rapide, mais ne peux pas gérer de multiples indices Comment peut-on aller sur les excès de vitesse les choses?
InformationsquelleAutor Tyler Cowan | 2016-02-25
Vous devez vous connecter pour publier un commentaire.
En supposant que vous voulez une liste de vos sorties:
Toutes les options semblait qu'ils présentent les mêmes performances en temps pour mon test avec la compréhension de liste étant le plus rapide (à peine).
Et si vous êtes cool avec le retour d'un générateur, c'est beaucoup plus rapide que les autres approches. Pensé qu'il ne tient pas compte de l'itération sur les indices, ni de les stocker, de sorte que le nmr ne peut pas être répété plus d'une seconde de temps.
[i for i,j in enumerate(x) if x == 3]
, deuxièmex
devrait êtrej
.Utilisation
list.index(elem, start)
! Qui utilise une boucle for en C (voir la mise en oeuvrelist_index_impl
fonction de la source de Disponible de listobject.c).Éviter de passer en boucle sur tous les éléments en Python, il est plus lent que chez C.
Puis il suffit d'appeler D[item] pour obtenir les indices qui correspondent. Vous allez donner de départ temps de calcul mais de le gagner lors de l'appel.
Pour obtenir l'index de l'élément, vous pouvez utiliser le dictionnaire.
J'ai utilisé un autre moyen pour trouver l'indice d'un élément dans une liste en Python 3:
Quelques tests:
Cette fonction retourne toujours la première occurrence de l'élément. Si un élément ins pas dans la liste, renvoie -1. Pour mes objectifs, que la solution a bien fonctionné.
Il suffit de créer un dictionnaire de l'article->index à partir de la liste des éléments à l'aide de zip comme suit: