Was ist schneller, wenn die Bedingung durch die Einschlussnotation gegeben ist oder wenn die Bedingung mit "Lambda" an "Filter" übergeben wird?
iter = 10000
#Einschlussnotation
for _ in tqdm(range(iter)):
[i for i in range(iter) if i % 2 == 0]
#Nur filtern
for _ in tqdm(range(iter)):
filter(lambda i: i % 2 == 0, range(iter))
#Vom Filter in die Liste umwandeln
for _ in tqdm(range(iter)):
list(filter(lambda i: i % 2 == 0, range(iter)))
Ich habe jeden verglichen.
Bedingungen | iter/s |
---|---|
Einschlussnotation | 1531.51 |
filter nur |
1169176.56 |
filter vonlist Besetzung zu |
880.30 |
~~ filter
war der überwältigende Sieg. ~~
~~ Wenn es jedoch notwendig ist, es in der nachfolgenden Verarbeitung als "Liste" zu erstellen, scheint die Einschlussnotation besser zu sein. ~~
Und es ist natürlich, dass "Filter" im Vergleich wie oben überwältigend gewinnt. https://qiita.com/licht-e-jima/items/0ef1e630c9afb771c040#comment-0882f662a1eb61d3e602 Korrekt. Danke für deinen Rat.