Qu'est-ce qui est le plus rapide, le cas où la condition est donnée par la notation d'inclusion ou le cas où la condition est passée à «filtre» avec «lambda»?
iter = 10000
#Notation d'inclusion
for _ in tqdm(range(iter)):
[i for i in range(iter) if i % 2 == 0]
#filtre uniquement
for _ in tqdm(range(iter)):
filter(lambda i: i % 2 == 0, range(iter))
#Diffuser dans la liste à partir du filtre
for _ in tqdm(range(iter)):
list(filter(lambda i: i % 2 == 0, range(iter)))
J'ai comparé chacun d'eux.
conditions | iter/s |
---|---|
Notation d'inclusion | 1531.51 |
filter seulement |
1169176.56 |
filter delist Diffuser sur |
880.30 |
~~ filter
a été la victoire écrasante. ~~
~~ Cependant, s'il doit être "list" dans le traitement suivant, il semble que la notation d'inclusion sera meilleure. ~~
Et, il est naturel que le "filtre" gagne massivement par rapport à ce qui précède. https://qiita.com/licht-e-jima/items/0ef1e630c9afb771c040#comment-0882f662a1eb61d3e602 C'est vrai. Merci pour votre conseil.