Python - sbírka hezkých konstrukcí
Z Varhoo
(Rozdíly mezi verzemi)
(Nejsou zobrazeny 3 mezilehlé verze od 1 uživatele.) | |||
Řádka 1: | Řádka 1: | ||
+ | ==Sekvence v Pythonu== |
||
+ | |||
'''Funkce pro spočítání sumy''' |
'''Funkce pro spočítání sumy''' |
||
Řádka 8: | Řádka 10: | ||
list = range(1,10) |
list = range(1,10) |
||
− | avarage = lambda list:reduce((lambda x,y:x+y) ,list) / float(len(list)) |
+ | average = lambda list:reduce((lambda x,y:x+y) ,list) / float(len(list)) |
>> 5.0 |
>> 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''' |
'''Funkce filtru''' |
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]