python carte fonction agissant sur une chaîne de nombres

J'ai été jouer avec la carte de fonction en Python et j'ai été à la recherche pour certains vous aider à comprendre le comportement suivant:

foo="12345"
print map(int,foo)

vous donne [1, 2, 3, 4, 5]. Évidemment int(foo) crache 12345. Donc ce qui se passe exactement? Depuis les chaînes de caractères sont itératif par caractère, les deux lignes ci-dessus, synonyme de

print [int(x) for x in foo]

Je sais qu'ils seront de sortie le même résultat mais est-il quelque chose de différent se passe derrière les coulisses? Est un des plus efficaces ou mieux qu'un autre? Est un de plus "pythonic"?

Merci beaucoup!

  • docs.python.org/release/1.4/tut/...
  • Cela tombe dans le domaine de l'opinion. Avis: Ils sont fonctionnellement similaires et c'est un peu la préférence de l'utilisateur. map horloge un peu plus vite; compréhension de Liste est plus immédiatement évidente à des tiers les yeux.
InformationsquelleAutor acs | 2012-10-03