


Pourquoi les compréhensions de listes sont-elles plus rapides que l'ajout de listes en Python ?
Oct 28, 2024 pm 04:58 PMPourquoi les compréhensions de listes surpassent les ajouts de listes
Malgré la perception des compréhensions de listes comme un simple sucre expressif, elles démontrent un avantage de vitesse significatif par rapport à l'ajout de listes . Cette disparité s'étend au-delà des différences expressives.
Pour illustrer, considérons les références temporelles suivantes :
1 2 3 4 |
|
Les résultats révèlent que la compréhension de liste s'exécute environ 50 % plus rapidement que l'ajout à une liste.
Raisons de l'augmentation de la vitesse
Les compréhensions de listes exploitent plusieurs optimisations de performances :
- Élimination du chargement d'attributs et des appels de fonction : Dans l'ajout de liste, chaque itération nécessite de charger l'attribut append de la liste et de l'appeler en tant que fonction. Les compréhensions de listes éliminent cette surcharge en créant une nouvelle liste à la demande.
- Suspension et reprise par rapport à la création instantanée de liste : La suspension et la reprise du cadre d'une fonction sont généralement plus lentes que la création directe d'une liste à la demande .
Exemples
Considérez les extraits de code suivants :
1 2 3 4 5 6 7 |
|
Le désassemblage de ces fonctions avec le module dis révèle les différences :
1 2 |
|
En f1, on observe la création d'une liste ainsi que le chargement et l'appel de l'attribut append (offsets 18 et 20). Dans f2, cependant, ces opérations sont absentes, ce qui donne un code plus efficace.
Conclusion
Les compréhensions de listes permettent d'améliorer les performances en éliminant le chargement d'attributs, les appels de fonction et le temps système associé à la suspension et à la reprise des trames de fonctions. Par conséquent, ils sont souvent recommandés pour créer de nouvelles listes où la rapidité est une priorité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment utiliser la belle soupe pour analyser HTML?

Comment télécharger des fichiers dans Python

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

Présentation de la boîte à outils en langage naturel (NLTK)
