Cuando me encuentro con la situación, puedo hacerlo en javascript, siempre pienso que si hay una foreach
función sería conveniente. Por foreach me refiero a la función que se describe a continuación:
def foreach(fn,iterable):
for x in iterable:
fn(x)
simplemente lo hacen en cada elemento y no producen o devuelven algo, creo que debería ser una función incorporada y debería ser más rápido que escribirlo con Python puro, pero no lo encontré en la lista, o ¿acabo de llamar a otro nombre? ¿O acabo de perder algunos puntos aquí?
Tal vez me equivoqué, porque llamar a una función en Python cuesta mucho, definitivamente no es una buena práctica para el ejemplo. En lugar de un bucle de salida, la función debería hacer que el bucle en el lado de su cuerpo se vea así a continuación, que ya se menciona en muchas sugerencias de código de Python:
def fn(*args):
for x in args:
dosomething
pero pensé que foreach todavía es bienvenido en base a los dos hechos:
- En casos normales, a las personas simplemente no les importa el rendimiento
- En algún momento, la API no aceptó el objeto iterable y no puede reescribir su fuente.
for
sirve.
list.each(func)
es más limpio que for item in list: func(item)
, en mi opinión. El problema es que Python ha hecho un buen trabajo al reemplazar los favoritos funcionales como map()
y filter()
con las comprensiones de listas que simplemente extienden su incorporado for
y if
(que son homogéneos y legibles) y un específico .each()
podría ir en contra de eso.
sum(0 for _ in map(f, seq))
es una solución legible.
for
bucle?