notation de filtre ou d'inclusion

Quelle est la notation la plus rapide, «filtre» ou inclusion?

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
filterseulement 1169176.56
filterdelistDiffuser 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.

Recommended Posts

notation de filtre ou d'inclusion
Notation d'inclusion Python
Notation d'inclusion
Notation d'inclusion Python
Définir la notation d'inclusion
Notation d'inclusion de liste
Notation d'inclusion