[python] dokumentace k novejsim rysum jazyka

Jirka Vejrazka jirka.vejrazka na gmail.com
Pátek Březen 5 00:37:25 CET 2010


Ahoj,

> když si tak občas čtu různé vzorové příklady, tak mám problém rozumět
> některým novým rysům. Je tu někdo, kdo by mně řekl co znamená třeba
>
> [i*i for i in range(10)]

to je takzvany "list comprehension" (1), tj. definice listu "zevnitr".
Vysledkem je list, ve kterem jsou druhe mocniny cisel 1 az 10.
Je to zkraceny zapis tohoto:

x = []   # nebo x = list()
for i in range(10):
    x.append(i*i)

> a=(i*i for i in range(10))

To je totez jako predtim, jenom vysledkem neni list, ale tuple (cili
list, ktery se po vytvoreni neda zmenit).

Da se to jeste doplnit o podminku, ktera se zapisuje az na konci, treba:

>>> delitelne_tremi = [x for x in range(20) if x % 3 == 0]
>>> delitelne_tremi
[0, 3, 6, 9, 12, 15, 18]

   Jirka
(1) http://docs.python.org/tutorial/datastructures.html#list-comprehensions


Další informace o konferenci Python