Maison > développement back-end > Tutoriel Python > Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

WBOY
Libérer: 2023-04-16 17:40:03
avant
1473 Les gens l'ont consulté

Dans cet article, j'ai résumé 6 exemples de méthodes d'écriture Python.

1. N'importez pas de modules racine

Une chose que nous ne pouvons pas éviter lors de l'utilisation de Python est l'importation de modules, qu'il s'agisse de modules intégrés ou de modules tiers. Parfois, nous n’avons besoin que d’une ou de quelques fonctions ou objets du module. Dans ce cas, nous devrions essayer d'importer uniquement les fonctions ou objets dont nous avons besoin au lieu d'importer le module racine.

Ceci est un exemple simple. Supposons que nous devions calculer la racine carrée de certains nombres dans un programme.

Exemple plus lent

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Dans le mauvais exemple, nous avons importé le module mathématique et utilisé math.sqrt() pour accéder à la fonction. Bien sûr, il n’y a rien de mal à cela, mais si nous pouvions importer la fonction sqrt(), les performances seraient meilleures.

Exemple plus rapide

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

2. Évitez d'utiliser une chaîne de points/points

L'utilisation de points est très intuitive. Accéder aux propriétés ou fonctions d'un objet en Python. La plupart du temps, aucun problème. Cependant, si nous pouvions éviter d’utiliser des points ou même de relier des points, les performances seraient en réalité meilleures.

L'exemple ci-dessous montre l'ajout de numéros à une liste, puis leur suppression.

Exemple plus lent

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Exemple plus rapide

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Si vous ne croyez pas que cela fasse réellement la même chose, nous pouvons le vérifier.

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Je peux m'attendre à ce que de nombreux développeurs Python sautent le pas et disent que la technique de cet exemple est un peu ridicule. En fait, même moi-même, j’écris rarement du code comme celui ci-dessus. Cependant, il est bon de savoir que nous pouvons le programmer de cette façon et même le rendre plus rapide.

Si nous voulons ajouter des éléments à une liste et en supprimer des millions de fois, nous devrions probablement envisager d'utiliser cette astuce. C'est pourquoi nous devons équilibrer les performances et la lisibilité de notre code.

3. N'utilisez pas + pour concaténer des chaînes

Les chaînes sont immuables en Python. Par conséquent, lorsque nous utilisons "+" pour concaténer plusieurs chaînes en une seule longue chaîne, chaque sous-chaîne est exploitée individuellement.

Exemple plus lent

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Plus précisément, pour chaque sous-chaîne, il doit demander une adresse mémoire, puis la concaténer avec la chaîne d'origine dans cette adresse mémoire, ce qui devient une surcharge.

Exemple plus rapide

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Cependant, lorsque nous utilisons la fonction join(), la fonction connaît toutes les sous-chaînes au préalable et l'adresse mémoire est allouée avec une longueur qui correspond à la chaîne finale jointe. Par conséquent, il n’y a aucune surcharge liée à l’allocation de mémoire pour chaque sous-chaîne.

Il est fortement recommandé d'utiliser la fonction join() autant que possible. Cependant, nous souhaitons parfois simplement concaténer deux chaînes. Ou, juste pour plus de commodité, nous souhaitons utiliser "+". Dans ces cas, l’utilisation du signe « + » entraîne une meilleure lisibilité et une longueur de code réduite.

4. N'utilisez pas de variables temporaires pour l'échange de valeurs

De nombreux algorithmes nécessitent l'échange de valeurs de deux variables. Dans la plupart des autres langages de programmation, cela se fait généralement en introduisant une variable temporaire, comme indiqué ci-dessous.

Exemple plus lent

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Exemple plus rapide

Mais, en Python, nous n'avons pas besoin d'utiliser la variable temp. Python possède une syntaxe intégrée pour implémenter cet échange de valeurs, comme indiqué ci-dessous.

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

5. Utilisez If-Condition pour court-circuiter

L'évaluation de "court-circuit" existe dans de nombreux langages de programmation, et Python fait de même. Fondamentalement, il fait référence au comportement de certains opérateurs booléens où le deuxième argument est exécuté ou évalué uniquement si le premier argument n'est pas suffisant pour déterminer la valeur de l'expression entière.

Montrons cela dans un exemple. Supposons que nous ayons la liste suivante.

my_dict = [
{
'name': 'Alice',
'age': 28
},
{
'name': 'Bob',
'age': 23
},
{
'name': 'Chris',
'age': 33
},
{
'name': 'Chelsea',
'age': 2
},
{
'name': 'Carol',
'age': 24
}
]
Copier après la connexion

Notre travail consiste à filtrer la liste et à trouver toutes les personnes dont le nom commence par "C" et dont l'âge est de 30 ans ou plus.

Exemple plus lent

Il y a deux conditions qui doivent être remplies en même temps :

  • Le nom commence par "C"
  • Âge ≥ 30 Nous pouvons donc écrire le code suivant.

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Exemple plus rapide

Il n'y a rien de mal avec le code de l'exemple précédent. Cependant, dans cet exemple fictif particulier, seul « Chris » a plus de 30 ans.

Si nous écrivons d'abord la condition de vérification des noms, alors trois noms (Chris, Chelsea et Carol) sont remplis. La deuxième condition concernant l'âge est ensuite à nouveau vérifiée pour les 3 individus.

Cependant, en raison d'une évaluation de court-circuit, si nous écrivons d'abord la condition d'âge, seul l'âge de Chris sera supérieur à 30 ans, et il sera vérifié à nouveau si son nom commence par "C".

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Dans ce cas, c'est presque 100% plus rapide.

6. N'utilisez pas While Loop si vous pouvez utiliser For Loop

Python utilise beaucoup de C pour améliorer les performances, c'est-à-dire CPython. En termes d'instructions de boucle, une boucle For en Python comporte relativement moins d'étapes, dont davantage sont exécutées en code C qu'une boucle While.

Ainsi, même si nous pouvons utiliser For-Loop en Python, nous ne devrions pas utiliser la boucle while. Ce n’est pas seulement parce que For-Loop est plus élégant en Python, mais aussi plus performant.

Exemple plus lent

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

Exemple plus rapide

Rafraîchissez vos connaissances ! J'utilise ces six mauvaises habitudes qui ralentissent tout le temps mes programmes Python !

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!

Étiquettes associées:
source:51cto.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal