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