Python - sbírka hezkých konstrukcí
Z Varhoo
(Rozdíly mezi verzemi)
(Nejsou zobrazeny 4 mezilehlé verze od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
− | Funkce pro spočítání sumy |
+ | ==Sekvence v Pythonu== |
+ | |||
+ | '''Funkce pro spočítání sumy''' |
||
list = range(1,10) |
list = range(1,10) |
||
Řádka 5: | Řádka 5: | ||
>> 45 |
>> 45 |
||
− | Funkce filtru |
+ | Pak lze snadno vytvořit funkci pro výpočet průměru |
+ | |||
+ | list = range(1,10) |
||
+ | average = lambda list:reduce((lambda x,y:x+y) ,list) / float(len(list)) |
||
+ | >> 5.0 |
||
+ | |||
+ | A aby to nebylo málo, obdobným způsobem spočítáme průměr souřadnic v 2D prostoru |
||
+ | |||
+ | avarage2d = lambda list: [i/float(len(list)) for i in reduce((lambda x,y:[x[0]+y[0],x[1]+y[1]]) ,list)] |
||
+ | avarage2d([[1,2],[2,3]]) |
||
+ | >> [1.5, 2.5] |
||
+ | |||
+ | |||
+ | '''Funkce filtru''' |
||
list = range(1,10) |
list = range(1,10) |
||
Řádka 11: | Řádka 11: | ||
>> [6, 7, 8, 9] |
>> [6, 7, 8, 9] |
||
− | Funkce map |
+ | '''Funkce map''' |
list = range(1,10) |
list = range(1,10) |
Aktuální verze z 14. 6. 2011, 13:02
[editovat] Sekvence v Pythonu
Funkce pro spočítání sumy
list = range(1,10) reduce((lambda x,y:x+y) ,list) >> 45
Pak lze snadno vytvořit funkci pro výpočet průměru
list = range(1,10) average = lambda list:reduce((lambda x,y:x+y) ,list) / float(len(list)) >> 5.0
A aby to nebylo málo, obdobným způsobem spočítáme průměr souřadnic v 2D prostoru
avarage2d = lambda list: [i/float(len(list)) for i in reduce((lambda x,y:[x[0]+y[0],x[1]+y[1]]) ,list)] avarage2d([[1,2],[2,3]]) >> [1.5, 2.5]
Funkce filtru
list = range(1,10) [x for x in list if x >5] >> [6, 7, 8, 9]
Funkce map
list = range(1,10) [2**x for x in list] >> [2, 4, 8, 16, 32, 64, 128, 256, 512]
Popřípadě využití lambda výrazu
list = range(1,10) f = lambda x: 2**x [f(x) for x in list] >> [2, 4, 8, 16, 32, 64, 128, 256, 512]