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.
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.
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)
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)
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 **.
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 **
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