Wenn ich auf die Situation stoße, in der ich es in Javascript tun kann, denke ich immer, wenn es eine foreachFunktion gibt, wäre es bequem. Mit foreach meine ich die Funktion, die unten beschrieben wird:
def foreach(fn,iterable):
for x in iterable:
fn(x)
Sie machen es einfach für jedes Element und haben nichts zurückgegeben oder zurückgegeben. Ich denke, es sollte eine eingebaute Funktion sein und schneller als das Schreiben mit reinem Python, aber ich habe es nicht auf der Liste gefunden, oder es hat nur einen anderen Namen genannt oder ich vermisse hier nur einige Punkte?
Vielleicht habe ich mich geirrt, weil das Aufrufen einer Funktion in Python hohe Kosten verursacht hat, definitiv keine gute Praxis für das Beispiel. Anstelle einer Out-Schleife sollte die Funktion die Schleife in der Seite ausführen, in der ihr Körper wie folgt aussieht, was bereits in vielen Python-Code-Vorschlägen erwähnt wurde:
def fn(*args):
for x in args:
dosomething
aber ich dachte, foreach ist immer noch eine willkommene Grundlage für die beiden Fakten:
- Im Normalfall kümmern sich die Leute einfach nicht um die Leistung
- Manchmal hat die API kein iterierbares Objekt akzeptiert und Sie können die Quelle nicht neu schreiben.
forist.
list.each(func)ist sauberer als for item in list: func(item)IMO. Das Problem ist, dass Python gute Arbeit geleistet hat, um funktionale Favoriten wie map()und filter()durch Listenverständnisse zu ersetzen, die einfach das eingebaute forund if(homogen und lesbar) erweitern, und ein bestimmtes .each()könnte dagegen sprechen .
sum(0 for _ in map(f, seq))ist eine lesbare Problemumgehung.
forSchleife zu verwenden?