MICHÁLEK Jan Mgr. napsal
>
> [...]
> > Jde tedy to nějak vymyslet, abych udělal ten generátor, kterej si bude pamatovat
jen aktuální hodnoty x a y, aniž bych musel použít smyčku??

Ta věc [něco for něco] (menuje se to generátor pole??)

Anglicky se to jmenuje "list comprehension", čili "skládač seznamu".
V překladu Dive Into Python 3 jsem ve spolupráci se zdejšími borci dospěl
k českému...

5.3 GENERÁTOROVÁ NOTACE SEZNAMU
Generátorová notace seznamu (anglicky list comprehension [list
komprihenšn]) umožňuje stručný zápis vytvoření seznamu z jiného
seznamu aplikováním funkce na všechny prvky zdrojového seznamu.
(Poznámka překladatele: Pojem „list comprehension“ je znám z
deklarativních jazyků a má charakter syntaktické konstrukce. V jazyce
Python se „vnitřku“ deklarativního zápisu podobá generátorový výraz.
Tímto způsobem byl odvozen český pojem „generátorová notace“.
Někdy je pojem „list comprehension“ použit v procedurálním,
dynamickém smyslu. V takové situaci můžeme uvažovat o pojmu
„generátor seznamu“. Pokud se bavíme o jeho výsledku, můžeme
uvažovat i o pojmu „generovaný seznam“. Vzhledem k tomu, že
zavedený český pojem pro tuto konstrukci asi neexistuje —
studentům příslušných oborů vysokých škol přijde po krátké chvíli anglický pojem srozumitelný —, budu volněji používat některou z uvedených variant. Někdy budu poněkud dlouhý pojem „generátorová notace seznamu“
zkracovat. Kritériem volby bude dobrá srozumitelnost.)

Podobně existuje "dictionary comprehension" a "set comprehension".

Nebo to jde nějak občůrat (například použít místo range() generátor)??

Už jsem to posílal jako reakci na odpověď Jirky, ale ono Ctrl-V zase tolik
práce nedá ;)

g = ((a,b) for a in xrange(1,10,2) for b in xrange(5,20,5))

def genFunc(x, y):
    for a in xrange(1, x, 2):
        for b in xrange(5, y, 5):
            yield (a, b)
            for t in g:
    print t,
    print    print '-' * 60

for t in genFunc(10, 20):
    print t,


Petr


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

Odpovedet emailem