Beitritt zu einer Liste:
>>> ''.join([ str(_) for _ in xrange(10) ])
'0123456789'
join muss eine iterable nehmen.
Anscheinend ist joindas Argument [ str(_) for _ in xrange(10) ], und es ist ein Listenverständnis .
Schau dir das an:
>>>''.join( str(_) for _ in xrange(10) )
'0123456789'
Nun, joindas Argument ist einfach str(_) for _ in xrange(10), nein [], aber das Ergebnis ist das gleiche.
Warum? Erzeugt str(_) for _ in xrange(10)auch eine Liste oder eine iterable?
_hat keine besondere Bedeutung, es ist ein regulärer Variablenname. Es wird oft als Wegwerfname verwendet, aber dies ist nicht der Fall (Sie verwenden die Variable). Ich würde es vermeiden, es in einem Code zu verwenden (zumindest auf diese Weise).
joindas höchstwahrscheinlich in C geschrieben ist und daher viel schneller läuft als ein Listenverständnis ... Testzeit!