Quando incontro la situazione posso farlo in javascript, penso sempre che se c'è una foreachfunzione 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.
forserve.
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 fore if(che sono omogenei e leggibili) e uno specifico .each()potrebbe andare contro questo.
sum(0 for _ in map(f, seq))è una soluzione leggibile.
forloop?