En Python, vous pouvez avoir besoin d'un compteur lors de la conversion d'une instruction for dans une séquence. : smiley: À ce moment-là, il semble que le moyen le plus simple soit de définir un compteur en dehors de l'instruction for et de l'incrémenter à l'intérieur de l'instruction for, ou d'obtenir le compteur en utilisant enumerate: relaxé: Quand j'ai entendu cette histoire, je me suis demandé laquelle pouvait être traitée plus rapidement: confuse: J'ai donc décidé de mesurer la vitesse: grin: Cliquez ici pour le code de mesure.
sptst.py
import time
def count(test):
count=0
start=time.time()
for item in test:
a=count
b=item
c=test[count]
count+=1
diff=time.time()-start
return diff
def enumer(test):
start=time.time()
for count,item in enumerate(test):
a=count
b=item
c=test[count]
diff=time.time()-start
return diff
test=[]
for i in range(100000):
test.append("test")
loopNum=1000
summation=0
for i in range(loopNum):
summation+=(count(test))/(enumer(test))
print(summation/loopNum)
Avec une instruction for utilisant count et une instruction for utilisant enumerate, j'ai tourné une liste composée de 100 000 éléments et essayé d'effectuer le traitement approprié. : cou: Chaque instruction for est tournée 1 000 fois et le décompte indique le nombre de fois en moyenne. : cou: En conséquence, il s'est stabilisé à environ 1,2. : angoissé: Dans ce cas, le traitement était léger, il semble donc y avoir une différence de 1,2 fois: no_mouth: Lorsque vous avez besoin d'un compteur dans une instruction for, il semble préférable d'utiliser enumerate plutôt que de définir une variable à l'extérieur et de l'incrémenter: wink:
Recommended Posts