0
votes

L'annexe est plus lente avec entier que la chaîne en python?

Je rencontre ce code tout en recherchant un moyen de mesurer la vitesse des fonctions. XXX PRE>

Quand je l'exécute, il faut environ 10 secondes, ce qui est très étrange pour moi. Je me souviens que lorsque je suis enjambe 100.000 chaîne dans une chaîne, il ne faut 0,06 seconde. Pourquoi l'annexe 100 entiers dans une liste prend-elle 10 secondes? Voici le code que j'utilise pour annoncer stringt à la liste. P>

def wordlist1():
    fin = open("words.txt")
    word_list = []
    for line in fin:
        word = line.strip()
        word_list.append(word)
    return word_list


4 commentaires

Vous utilisez également plage () pour vos entiers, ce qui pourrait être plus lent que pour la ligne d'aileron


Basé sur votre titre, vous devriez comparer Test avec une autre fonction de même l'APPART ROM L.AppEND ('A') - Vous comparez 2 choses complètement différentes


@Flob plage dans Python 3 ne crée pas une liste d'entiers en mémoire; C'est une plage objet avec un __ suivant __ comme un itérateur de fichiers.


@cheppner merci d'avoir clarifié ça! :-) Je ne sais pas autant de choses sur Python, c'était juste une idée ^^


3 Réponses :


-1
votes

Essayez celui-ci

​​def test (): p>

l = [] p>

pour i in gamme (100) p>

    count + = i

    L.append(count )

    return count 


1 commentaires

Bienvenue sur Stackoverflow. Mais comment est-ce une réponse à la question? En outre, veuillez formater votre code correctement en cliquant sur le lien Modifier , en surbrillant le code, puis sur la touche {} (ou appuyez sur Ctrl + k ) .



1
votes

Je pense que votre problème est l'utilisation du module TIMOIT. Lorsqu'il n'est pas spécifié, le numéro PARAM Numéro CODE> par défaut à 1E6. Donc, ce que vous mesurez efficacement, c'est combien de temps il faudrait pour annoncer cent numéros à un tableau 1E6 fois.

Pour vérifier cela, j'ai utilisé ce code de code: P>

7.74517...e-06


0 commentaires

1
votes

Si vous utilisez ipython, vous pouvez voir une explication plus claire des résultats à l'aide de son % Timeit Commande magique. XXX

Ici, le résultat est une moyenne de 7.12 microsecondes par appel à test , avec la moyenne calculée sur 7 ensembles de 100 000 appels vers test . Ceci est cohérent avec les microsecondes 7.75 rapportées par Docdriven dans sa réponse .


0 commentaires