Je suis à la recherche de la façon la plus rapide de savoir si une valeur existe dans une liste (une liste avec des millions de valeurs) et que son indice est? Je sais que toutes les valeurs de la liste sont uniques comme mon exemple.
Mes premières méthodes que j'essaie est(3.8 sec dans mon vrai code):
a = [4,2,3,1,5,6]
if a.count(7) == 1:
b=a.index(7)
"Do something with variable b"
Mon deuxième méthode j'ai essayer est (2x plus rapide:1.9 sec sur mon vrai code):
a = [4,2,3,1,5,6]
try:
b=a.index(7)
except ValueError:
"Do nothing"
Else:
"Do something with variable b"
Proposition de méthodes de S. O. utilisateur (2.74 sec sur mon vrai code):
a = [4,2,3,1,5,6]
if 7 in a:
a.index(7)
Dans mon vrai code , la première méthode prendre 3.81 sec et le second méthodes prennent 1.88 sec. C'est une bonne amélioration, mais:
Je suis débutant en Python/script et je veux savoir si d'une manière la plus rapide existe pas de faire les mêmes choses et d'économiser plus de temps de traitement?
Plus spécifique de l'explication de mon application:
Dans l'API de blender un peut accéder à une liste de particules:
particles = [1,2,3,4...etc.]
À partir de là , je peux accéder à son emplacement:
particles[x].location = [x,y,z]
Et je test pour chacune des particules si un voisin qui existe par la recherche dans l'emplacement de chaque particules comme:
if [x+1,y,z] in particles.location
"find the identity of this neighbour particles in x:the index
of the particles array"
particles.index([x+1,y,z])