Est-il un 'foreach' fonction en Python 3?

Quand je rencontre la situation, je peux le faire en javascript, j'ai toujours pense que si il y a un foreach fonction il serait commodité. Par foreach, je veux dire la fonction qui est décrit ci-dessous:

def foreach(fn,iterable):
    for x in iterable:
        fn(x)

ils ont juste le faire sur chaque élément et n'a pas de rendement ou de retourner quelque chose,je pense qu'il devrait être intégré dans la fonction et devrait être plus rapide que l'écriture par pure Python, mais je n'ai pas trouvé sur la liste,ou c'est juste appelé d'un autre nom?ou je viens de rater quelques points ici?

Peut-être que j'ai tort, causer de l'appel d'une fonction en Python coût élevé, certainement pas une bonne pratique pour l'exemple. Plutôt qu'une boucle, la fonction doit faire la boucle dans le côté de son corps ressemble à ceci ci-dessous qui est déjà mentionné dans de nombreux python code suggestions:

def fn(*args):
    for x in args:
       dosomething

mais j'ai pensé foreach est toujours la bienvenue de base sur les deux faits:

  1. Dans la plupart des cas, les gens ne se soucient pas de la performance
  2. Un jour de l'API n'a pas accepté objet itérable et vous ne pouvez pas réécrire sa source.
  • Quel est le problème avec juste l'aide d'un for boucle?
  • C'est exactement ce que for est pour.
  • rien de mal à pour la boucle ,juste pour des raisons de commodité
  • il est souhaitable de disposer d'un raccourci pour appeler une fonction à la fois par élément d'une liste. list.each(func) est plus propre que for item in list: func(item), de l'OMI. Le problème est que Python a fait un bon travail de remplacement fonctionnel favoris comme map() et filter() avec des interprétations de la liste, qui se contente de prolonger son haut- for et if (qui sont homogènes et lisible) et une .each() pourrait aller à l'encontre de cela.
  • sum(0 for _ in map(f, seq)) est lisible une solution de contournement.
InformationsquelleAutor user2003548 | 2013-08-18