Kiedy spotykam się z sytuacją, mogę to zrobić w javascript, zawsze myślę, czy istnieje foreach
funkcja, to wygoda. Przez cały rozumiem funkcję opisaną poniżej:
def foreach(fn,iterable):
for x in iterable:
fn(x)
po prostu robią to na każdym elemencie i nie zwróciły ani nie zwróciły, myślę, że powinna to być funkcja wbudowana i powinna być szybsza niż pisanie w czystym Pythonie, ale nie znalazłem tego na liście, lub po prostu nazwałem inną nazwę? czy po prostu brakuje mi tutaj niektórych punktów?
Może się pomyliłem, ponieważ wywołanie funkcji w Pythonie kosztuje dużo, zdecydowanie nie jest to dobra praktyka na przykład. Zamiast pętli out, funkcja powinna wykonywać pętlę w boku, tak jak jej ciało wygląda tak, jak to zostało wspomniane w wielu sugestiach dotyczących kodu w Pythonie:
def fn(*args):
for x in args:
dosomething
ale pomyślałem, że każdy jest nadal mile widziany na podstawie dwóch faktów:
- W normalnych przypadkach ludzie po prostu nie dbają o wydajność
- Czasami API nie akceptowało iterowalnego obiektu i nie można przepisać jego źródła.
for
służy.
list.each(func)
jest czystszy niż for item in list: func(item)
IMO. Problem polega na tym, że Python wykonał dobrą robotę zastępując funkcjonalne ulubione, takie jak map()
i filter()
wyrażeniami listowymi, które po prostu rozszerzają jego wbudowane for
i if
(które są jednorodne i czytelne), a specyfikacja .each()
może temu przeszkodzić.
sum(0 for _ in map(f, seq))
to czytelne obejście.
for
samej pętli?