> čili se to chová jinak než standardní tuple, je to spíš něco, čemu se říká > generátor.
Nojo, vida - to jsem nevedel, ze s kulatymi zavorkami to vytvori generator, diky :) Generator ma tu vyhodu, ze se nic nevytvari v pameti. Zrejme je to, kdyz se pouzije misto range (ktery interne dela list) funkce xrange (coz je taky generator) - tohle plati pro Python 2.4 ktery ted mam spusteny, v novejsich uz je to mozna jinak) >>> a = [x for x in xrange(100000000)] # vytvori v pameti list, ktery ma 100 >>> milionu prvku (bude chvili trvat) >>> a = (x for x in xrange(100000000)] # bleskove vytvori generator, ktery po >>> zavolani a.next() najde a vrati "dalsi prvek v poradi" >>>> b=(1,2,3) >>>> b.next() > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > AttributeError: 'tuple' object has no attribute 'next' Tohle uz je logicke, to je normalni tuple. > Mně se takové věci celkem líbí, ale připadne mně to nějak nedomyšlené, > protože by celý ten generátor měl tvořit samostatnou syntaktickou > jednotku, tj. interpret by měl nějak sežrat zápis > >>>> i*i for i in range(10) Proc, tady nejsou okolo zavorky, je to syntakticky neco uplne jineho... Klasicky priklad, ukazujici za na detailech zalezi: >>> x = (1) # cislo jedne v jednech zbytecnych zavorkach >>> x 1 >>> x = (1,) # tuple s jednim prvkem >>> x (1,) Jirka _______________________________________________ Python mailing list [email protected] http://www.py.cz/mailman/listinfo/python
