Javascript ile yapabileceğim durumla karşılaştığımda, her zaman bir foreach
işlev varsa kolaylık olacağını düşünüyorum. Foreach ile aşağıda açıklanan işlevi kastediyorum:
def foreach(fn,iterable):
for x in iterable:
fn(x)
sadece her öğede yapıyorlar ve bir şey vermediler ya da geri vermediler, bence yerleşik bir işlev olmalı ve saf Python ile yazmaktan daha hızlı olmalı, ama listede bulamadım ya da sadece başka bir isim mi aradı yoksa burada bazı noktaları mı özlüyorum?
Belki yanıldım, çünkü Python'da bir fonksiyon çağırmanın maliyeti yüksek, kesinlikle iyi bir örnek değil. Bir out döngüsünden ziyade, işlev, birçok python'un kod önerilerinde daha önce bahsedilen, aşağıdaki gibi görünen döngüyü yanda yapmalıdır:
def fn(*args):
for x in args:
dosomething
ama her iki olguda da her şeyin hoş karşılandığını düşünüyordum:
- Normal durumlarda, insanlar performansı umursamazlar
- Bazen API yinelenebilir nesneyi kabul etmedi ve kaynağını yeniden yazamazsınız.
for
bunun için.
list.each(func)
daha temiz for item in list: func(item)
. Sorun Python en gibi fonksiyonel sık değiştirilmesi iyi bir iş çıkarmış olmasıdır map()
ve filter()
basitçe uzatmak liste comprehensions ile kendi dahili for
ve if
(ki homojen ve okunabilir) ve belirli .each()
buna karşı gidebilir.
sum(0 for _ in map(f, seq))
okunabilir bir çözümdür.
for
döngü kullanmanın nesi yanlış ?