Quando encontro a situação, posso fazê-lo em javascript, sempre acho que, se houver uma foreach
função, seria conveniente. Por foreach, quero dizer a função que é descrita abaixo:
def foreach(fn,iterable):
for x in iterable:
fn(x)
eles apenas fazem isso em todos os elementos e não produzem ou retornam algo, acho que deve ser uma função interna e deve ser mais rápida do que escrevê-la com Python puro, mas não a encontrei na lista, ou acabou de chamar outro nome? ou eu só sinto falta de alguns pontos aqui?
Talvez eu tenha me enganado, porque chamar uma função em Python custa alto, definitivamente não é uma boa prática para o exemplo. Em vez de um loop out, a função deve executar o loop no lado em que seu corpo se parece com este abaixo, que já foi mencionado nas sugestões de código de muitas python:
def fn(*args):
for x in args:
dosomething
mas pensei que foreach ainda é bem-vindo com base nos dois fatos:
- Em casos normais, as pessoas simplesmente não se importam com o desempenho
- Às vezes, a API não aceita objetos iteráveis e você não pode reescrever sua origem.
for
para isso.
list.each(func)
é mais limpo do que for item in list: func(item)
IMO. O problema é que Python tem feito um bom trabalho de substituição de favoritos funcionais como map()
e filter()
com compreensões lista que simplesmente estender a sua built-in for
e if
(que são homogêneos e legível) e uma específica .each()
pode ir contra isso.
sum(0 for _ in map(f, seq))
é uma solução legível.
for
loop?