Seite 1 von 1

Verfasst: Montag 28. Juli 2008, 14:48
von Leonidas
``x`` wird ja in Zeile 5 definiert, was du vielleicht nicht weißt ist, dass erst der ``for x in ...``-Teil ausgeführt wird und dann erst der ``int(x)``-Teil.

Verfasst: Montag 28. Juli 2008, 15:21
von Zap
@ Nocta: das ist keine List Comprehension

Unterschied:

Code: Alles auswählen

In [44]: l = [str(i) for i in xrange(10)] # <- List Comprehension

In [45]: l
Out[45]: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

In [46]: g = (str(i) for i in xrange(10)) # <- Generator Expression

In [47]: g
Out[47]: <generator object at 0x00EA2788>

In [48]: g.next()
Out[48]: '0'

In [49]: g.next()
Out[49]: '1'

Verfasst: Montag 28. Juli 2008, 19:54
von Nocta
Ah okay, deshalb hatte ich solche Probleme mich zu entscheiden, was es nun ist :p
Ich hab mich echt gefragt, warum ich 2 Begiffe für eine Sache im Kopf habe.
Aber ist ja auch fast das Selbe :)

Verfasst: Montag 28. Juli 2008, 21:56
von Leonidas
Zu bemerken ist noch, dass bei Generator Expressions die runden Klammern weggelassen werden können, wenn sie als (einziges) Argument in einem Funktionsaufruf vorkommen dürfen, wohl der esthetik wegen, damit es nicht wie ``callable((GE))`` aussieht.