Liste Verständnis, ohne [ ... ] in Python

Beitritt eine Liste:

>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'

join müssen ein durchsuchbar.

Offenbar join's argument ist [ str(_) for _ in xrange(10) ], und es ist ein list comprehension.

Schau mal hier:

>>>''.join( str(_) for _ in xrange(10) )
'0123456789'

Nun join's argument ist nur str(_) for _ in xrange(10) keine [], aber das Ergebnis ist das gleiche.

Warum? Tut str(_) for _ in xrange(10) produzieren auch eine Liste oder ein durchsuchbar?

  • Ich könnte mir vorstellen, dass join ist wahrscheinlich in C geschrieben und läuft somit wesentlich schneller als eine list comprehension... Test-Zeit!
  • Offenbar, lese ich deine Frage völlig falsch. Es scheint wieder ein generator für mich...
  • Nur eine Anmerkung: _ hat keine Besondere Bedeutung, es ist eine normale Variablen-Namen. Es wird oft als Wegwerf-Namen, aber das ist nicht der Fall (die variable). Ich würde vermeiden Sie es in einen code (auf diese Weise zumindest).
InformationsquelleAutor Alcott | 2012-01-30
Schreibe einen Kommentar