[PYTHON] Comparaison de vitesse entre la variable de comptage incrémentielle et l'énumération

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

Comparaison de vitesse entre la variable de comptage incrémentielle et l'énumération
Comparaison de vitesse entre CPython et PyPy
Expérience de comparaison de la vitesse d'écriture de fichier entre python 2.7.9 et pypy 2.5.0
Fonction pour ouvrir un fichier en Python3 (différence entre open et codecs.open et comparaison de vitesse)
Différence de vitesse entre wsgi, bouteille et flacon
Comparaison de vitesse de murmurhash3, md5 et sha1
Création d'un nouveau fichier [Comparaison entre Bash et PowerShell]
[Ruby vs Python] Comparaison de référence entre Rails et Flask
Capture d'image / comparaison de la vitesse OpenCV avec et sans GPU