Quando incontro la situazione posso farlo in javascript, penso sempre che se c'è una foreach
funzione sarebbe comodo. Per foreach intendo la funzione che è descritta di seguito:
def foreach(fn,iterable):
for x in iterable:
fn(x)
lo fanno solo su ogni elemento e non hanno prodotto o restituito qualcosa, penso che dovrebbe essere una funzione integrata e dovrebbe essere più veloce della scrittura con Python puro, ma non l'ho trovato nell'elenco, o ha appena chiamato un altro nome? o mi mancano solo alcuni punti qui?
Forse ho sbagliato, perché chiamare una funzione in Python ha un costo elevato, sicuramente non è una buona pratica per l'esempio. Piuttosto che un loop out, la funzione dovrebbe eseguire il loop a lato, il suo corpo è simile al seguente, che è già stato menzionato in molti suggerimenti di codice di Python:
def fn(*args):
for x in args:
dosomething
ma ho pensato che foreach sia ancora il benvenuto sulla base dei due fatti:
- In casi normali, alle persone semplicemente non interessa la performance
- A volte l'API non ha accettato l'oggetto iterabile e non è possibile riscriverne l'origine.
for
serve.
list.each(func)
è più pulito di for item in list: func(item)
, IMO. Il problema è che Python ha fatto un buon lavoro nel sostituire i preferiti funzionali come map()
e filter()
con la comprensione di elenchi che semplicemente estendono il suo built-in for
e if
(che sono omogenei e leggibili) e uno specifico .each()
potrebbe andare contro questo.
sum(0 for _ in map(f, seq))
è una soluzione leggibile.
for
loop?