Quand je rencontre la situation, je peux le faire en javascript, je pense toujours que s'il y a une foreach
fonction, ce serait pratique. Par foreach, j'entends la fonction qui est décrite ci-dessous:
def foreach(fn,iterable):
for x in iterable:
fn(x)
ils le font juste sur chaque élément et n'ont pas donné ou retourné quelque chose, je pense que cela devrait être une fonction intégrée et devrait être plus rapide que de l'écrire avec du Python pur, mais je ne l'ai pas trouvé sur la liste, ou il a juste appelé un autre nom? ou je manque juste quelques points ici?
Peut-être que je me suis trompé, car appeler une fonction en Python coûte cher, ce n'est certainement pas une bonne pratique pour l'exemple. Plutôt qu'une boucle de sortie, la fonction doit faire la boucle à côté de son corps ressemble à ceci ci-dessous, déjà mentionné dans de nombreuses suggestions de code de python:
def fn(*args):
for x in args:
dosomething
mais je pensais que foreach est toujours la bienvenue sur la base des deux faits:
- Dans les cas normaux, les gens ne se soucient tout simplement pas de la performance
- Parfois, l'API n'acceptait pas d'objet itérable et vous ne pouvez pas réécrire sa source.
for
sert.
list.each(func)
est plus propre que l' for item in list: func(item)
OMI. Le problème est que Python a fait du bon travail en remplaçant les favoris fonctionnels comme map()
et filter()
par des listes de compréhension qui étendent simplement son intégré for
et if
(qui sont homogènes et lisibles) et un spécifique .each()
pourrait aller à l'encontre de cela.
sum(0 for _ in map(f, seq))
est une solution de contournement lisible.
for
boucle?