Python - sbírka hezkých konstrukcí
Z Varhoo
(Rozdíly mezi verzemi)
(Založena nová stránka: Funkce pro spočítání sumy list = range(1,10) reduce((lambda x,y:x+y) ,list) >> 45 Funkce filtru list = range(1,10) [x for x in list if x >5] [6, 7, 8, 9] Funk…) |
|||
| (Není zobrazeno 5 mezilehlých verzí 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) |
||
[x for x in list if x >5] |
[x for x in list if x >5] |
||
| − | [6, 7, 8, 9] |
+ | >> [6, 7, 8, 9] |
| − | Funkce map |
+ | '''Funkce map''' |
list = range(1,10) |
list = range(1,10) |
||
[2**x for x in list] |
[2**x for x in list] |
||
| − | [2, 4, 8, 16, 32, 64, 128, 256, 512] |
+ | >> [2, 4, 8, 16, 32, 64, 128, 256, 512] |
| − | Popřípadě |
+ | Popřípadě využití lambda výrazu |
list = range(1,10) |
list = range(1,10) |
||
f = lambda x: 2**x |
f = lambda x: 2**x |
||
[f(x) for x in list] |
[f(x) for x in list] |
||
| − | [2, 4, 8, 16, 32, 64, 128, 256, 512] |
+ | >> [2, 4, 8, 16, 32, 64, 128, 256, 512] |
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]