À propos de la notation d'inclusion de python

introduction

Il existe un format appelé notation d'inclusion en python, Je l'ai fait sans l'utiliser du tout, mais c'est lié à la performance, alors j'ai pensé essayer de le comprendre correctement.

Fais une liste

Faites une liste uniquement des nombres impairs de 1 à 100. La méthode de création sans utiliser la notation d'inclusion est la suivante

list1.py


list = []
for number in range(1,101):
    if number % 2 ==1:
        list.append(number)
print(list)

Ensuite, j'essaierai la même chose en utilisant la notation d'inclusion. Le programme est le suivant

list2.py


list = [number for number in range(1,101) if number %2 ==1]
print(list)

Le premier numéro sera le numéro enregistré dans la liste. Le nombre après pour fait partie du nombre pour pour.

Faire un ensemble

Faites un ensemble de nombres impairs seulement de 1 à 99. Je l'appellerai la notation inclusive comme une liste.

shugo.py


list = {number for number in range(1,101) if number %2 ==1}
print(list)

Faire un dictionnaire

De même, le dictionnaire est également appelé en utilisant la notation d'inclusion. Un programme qui compte le nombre de fois où le caractère du mot apparaît

jisyo.py


word = 'aiueokakiku'
word_count = {x:word.count(x) for x in word}
print(word_count)

À propos de tapple

Faisons comme une liste.

tuple1.py


tuple = (number for number in range(1,101) if number %2 ==1)
print(tuple)

Quand tu cours <generator object <genexpr> at 0x101435f61> Ce n'est pas une erreur, mais le générateur retourne quand j'utilise () En d'autres termes, les ** tuples n'ont pas de notation d'inclusion **.

Comparaison des performances

J'essaierai si c'est vraiment rapide. Commençons par dresser une liste des seuls nombres impairs de 1 à 10000000 sans utiliser la notation d'inclusion.

test1.py


import time
start = time.time()

list = []
for number in range(1,10000001):
    if number % 2 ==1:
        list.append(number)

print("Temps d'exécution:{0}",time.time() - start)

La moyenne de 5 essais était de ** 1,71131701469 **

Ensuite, je vais essayer la même chose avec la notation d'inclusion

test2.py


import time
start = time.time()

list = [number for number in range(1,10000001) if number %2 ==1]

print("Temps d'exécution:{0}",time.time() - start)

La moyenne de 5 essais était de ** 0,88413858413 **

résultat

L'écriture dans la notation d'inclusion était environ deux fois plus rapide et réduisait simplement la quantité de code. Il semble que ce sera plus facile à lire au fur et à mesure que vous vous y habituerez, je ferai donc de mon mieux pour m'y habituer le plus rapidement possible.

Recommended Posts

À propos de la notation d'inclusion de python
Notation d'inclusion Python
Notation d'inclusion Python
À propos des tranches Python
À propos de Python tqdm.
À propos du rendement Python
À propos de python, classe
À propos de l'héritage Python
À propos de python, range ()
À propos de Python Decorator
Python> Compréhension / Notation inclusive> Compréhension de liste
À propos de la référence Python
À propos des décorateurs Python
[Python] À propos du multi-processus
À propos de Python for loop
À propos des arguments de fonction (python)
Vitesse de notation d'inclusion de liste en Python
[Python] Mémo sur les fonctions
Résumé sur Python3 + OpenCV3
À propos de Python, pour ~ (plage)
[Python] Mémo sur les erreurs
À propos de l'environnement de développement Python
Python: à propos des arguments de fonction
Python, à propos de la gestion des exceptions
À propos de Python Pyramid Traversal
À propos de Python3 ... (objet Ellipsis)
[Python] Chapitre 01-01 À propos de Python (First Python)
[Python] À propos de l'entrée standard
À propos de __all__ en python
[Python] En savoir plus sur pip
Prise en charge de Fabric pour Python 3
Python
À propos des objets et des classes Python
À propos des variables et des objets Python
À propos du module Python venv
fonction de mémorandum python pour débutant
À propos de la fonction enumerate (python)
À propos de divers encodages de Python 3
À propos de Python, len () et randint ()
À propos de Perl, Python, PHP, Ruby
À propos de la date et du fuseau horaire Python
Mémorandum sur la corrélation [Python]
Un mémorandum sur le simulacre de Python
À propos des opérateurs de comparaison de chaînes Python
À propos de Python et des expressions régulières
À propos des fonctionnalités de Python
À propos de "for _ in range ():" de python
À propos des opérations Python et OS
Python # À propos de la référence et de la copie
À propos de Python sort () et reverse ()
Une note sur [python] __debug__
Remarque Python: à propos de la comparaison en utilisant is
À propos de l'installation des séries Pwntools et Python2
Python: une note sur les classes 1 "Résumé"
[Python] Écrivons brièvement la notation d'inclusion
À propos de Python dict et des fonctions triées
À propos de Python et Cython dtype