[python] Buducnost Pythonu: lambda, map, filter
Roman Miklos
RMiklos na pss.sk
Pondělí Listopad 13 19:06:17 CET 2006
Mas pravdu, ze je to otazka vkusu, ale ja osobne si myslim, ze tento
list-comprehention
[f for a in arguments for f in glob.glob(a)]
je krkolomnejsi ako tento reduce
filez = reduce(operator.add, map(glob.glob, arguments))
Radek Kanovsky <rk na dat.cz>
Sent by: python-bounces na py.cz
13.11.2006 18:48
Please respond to
Konference PyCZ <python na py.cz>
To
Konference PyCZ <python na py.cz>
cc
Subject
Re: [python] Buducnost Pythonu: lambda, map, filter
On Mon, Nov 13, 2006 at 06:14:26PM +0100, Roman Miklos wrote:
> Kazdopadne si myslim. ze reduce() ma opodstatnenie, kto tomu rozumie,
moze
> robit veci elegantnejsie.
To je asi otazka vkusu. Osobne nic proti funkci reduce nemam, ale uznavam,
ze patri spis do nejake pomocne knihovny nez do __builtins__.
> # suma 1,..,n
> suma1=lambda n: reduce(lambda x,y: x+y, range(n+1))
> print "suma(%d)=%d" %(5, suma1(5))
sum(range(n+1))
> # suma zoznamu
> suma2=lambda l: reduce(lambda x,y: x+y, l)
> l = range(6)
> print "suma(%s)=%d" % (l, suma2(l))
sum(l)
> # faktorial
> faktorial=lambda n: reduce(lambda x,y: x*y, range(2, n+1), 1)
> print "faktorial(%d)=%d" % (0, faktorial(0))
> print "faktorial(%d)=%d" % (5, faktorial(5))
Faktorial se prakticky pocita pouze v prvnich lekcich vyuky Pythonu
a tam se to kvuli nazornosti dela rekurzivni funkci :-)
> # Globbing - rozvinut wildcards ?, * v cestach k suborom
> import sys, operator, glob
> arguments = sys.argv[1:]
> # ak su zadane nejake command-line argumenty (napr. editor.py oop1*.*
> *.py~)
> if arguments:
>
> # pouzitie reduce()
> filez = reduce(lambda x,y: x+y, map(glob.glob, arguments))
[f for a in arguments for f in glob.glob(a)]
Radek Kaňovský
_______________________________________________
Python mailing list
Python na py.cz
http://www.py.cz/mailman/listinfo/python
Mgr. Ing. Roman MIKLÓ©
Prvá stavebná sporiteµňa a.s.
Bajkalská 30, P. O. Box 48
829 48 Bratislava 25
Tel.: +421/ 2 / 582 31 174
Fax: +421/ 2 / 582 31 109
Daląí informace o konferenci Python