[python] dokumentace k novejsim rysum jazyka

RMiklos na pss.sk RMiklos na pss.sk
Pátek Březen 5 10:31:54 CET 2010


>problém je v tomto:
>
>sum je standardní funkce:
>
>>>> sum(i**i for i in range(10))
>
>tady mně to prostě uniká - když závorky patří funkci sum, tak vnitřek by
>měl být uzavřený do závorek taky.

funguje to takto 
>>> sum(i*i for i in range(3))
5
alebo aj takto ked je vnutrajsok funkcie sum() uzavrety do zatvoriek:
>>> sum((i*i for i in range(3)))
5





From:   David Rohleder <davro na ics.muni.cz>
To:     Konference PyCZ <python na py.cz>
Date:   05.03.2010 08:00
Subject:        Re: [python] dokumentace k novejsim rysum jazyka
Sent by:        python-bounces na py.cz



Jirka Vejrazka píše v Pá 05. 03. 2010 v 01:01 +0100:
> > č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...
> 

problém je v tomto:

sum je standardní funkce:

>>> sum(i**i for i in range(10))

tady mně to prostě uniká - když závorky patří funkci sum, tak vnitřek by
měl být uzavřený do závorek taky.

D.

_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python

------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20100305/6750aec2/attachment.html>


Další informace o konferenci Python