Re: [python] Buducnost Pythonu: lambda, map, filter
Zajímavé, já to mám datované z letošního roku :-). Dne 13. 12. 2017 10:05 napsal uživatel "Pavel Schön": > Děkujeme za oživení 11 let starého vlákna, na tyto věci se prostě nesmí > zapomenout... :-) > > Dne úterý 12. prosince 2017 13:51:54 UTC+1 Petr Mach napsal(a): > > Dnes je ještě lepší toto: > > with open('data.txt') as f: > > for line in f: > > print line > > > > > > > > Dne 31. 3. 2017 13:35 napsal uživatel "Petr Přikryl" : > > Roman Miklos napsal(a): > > > > > > Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby > > > > bolo mozne namiesto > > > > > > > > f = open("data.txt") > > > > line = f.readline() while line: > > > > print line > > > > line = f.readline() > > > > f.close() > > > > > > > > napisat jednoducho ako v Perle a C++ > > > > > > > > f = open("data.txt") > > > > while line = f.readline(): > > > > print line f.close() > > > > > > > > > > Já raději píšu > > > > > > > > f = open("data.txt") > > > > for line in f: > > > > print line > > > > f.close() > > > > > > > > > > > > pepr > > > > ___ > > > > Python mailing list > > > > pyt...@py.cz > > > > http://www.py.cz/mailman/listinfo/python > > > > > > > > Visit: http://www.py.cz > > ___ > Python mailing list > python@py.cz > http://www.py.cz/mailman/listinfo/python > > Visit: http://www.py.cz > ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Buducnost Pythonu: lambda, map, filter
Ano! A je to pěkná ukázka stability jazyka, není-liž pravda? Nabízím ještě tvořivě generátor sad buněk dělených tabulátorem. :-) line_cells = (line.split('\t') for line in open('data.txt')) Po konzumaci generátoru se soubor sám zavře (Python 2.7.12 i 3.5.2). To samé platí i pro `for line in open(...):`. Hezké Vánoce, V. On 13.12.2017 10:02, Pavel Schön wrote: > Děkujeme za oživení 11 let starého vlákna, na tyto věci se prostě nesmí > zapomenout... :-) > > Dne úterý 12. prosince 2017 13:51:54 UTC+1 Petr Mach napsal(a): >> Dnes je ještě lepší toto: >> with open('data.txt') as f: >> for line in f: >> print line >> >> >> >> Dne 31. 3. 2017 13:35 napsal uživatel "Petr Přikryl": >> Roman Miklos napsal(a): >> >> >> Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby >> >> bolo mozne namiesto >> >> >> >> f = open("data.txt") >> >> line = f.readline() while line: >> >> print line >> >> line = f.readline() >> >> f.close() >> >> >> >> napisat jednoducho ako v Perle a C++ >> >> >> >> f = open("data.txt") >> >> while line = f.readline(): >> >> print line f.close() >> >> >> >> >> Já raději píšu >> >> >> >> f = open("data.txt") >> >> for line in f: >> >> print line >> >> f.close() >> >> >> >> >> >> pepr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Buducnost Pythonu: lambda, map, filter
Děkujeme za oživení 11 let starého vlákna, na tyto věci se prostě nesmí zapomenout... :-) Dne úterý 12. prosince 2017 13:51:54 UTC+1 Petr Mach napsal(a): > Dnes je ještě lepší toto: > with open('data.txt') as f: > for line in f: > print line > > > > Dne 31. 3. 2017 13:35 napsal uživatel "Petr Přikryl": > Roman Miklos napsal(a): > > > Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby > > bolo mozne namiesto > > > > f = open("data.txt") > > line = f.readline() while line: > > print line > > line = f.readline() > > f.close() > > > > napisat jednoducho ako v Perle a C++ > > > > f = open("data.txt") > > while line = f.readline(): > > print line f.close() > > > > > Já raději píšu > > > > f = open("data.txt") > > for line in f: > > print line > > f.close() > > > > > > pepr > > ___ > > Python mailing list > > pyt...@py.cz > > http://www.py.cz/mailman/listinfo/python > > > > Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Buducnost Pythonu: lambda, map, filter
Dnes je ještě lepší toto: with open('data.txt') as f: for line in f: print line Dne 31. 3. 2017 13:35 napsal uživatel "Petr Přikryl": Roman Miklos napsal(a): > Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby > bolo mozne namiesto > > f = open("data.txt") > line = f.readline() while line: > print line > line = f.readline() > f.close() > > napisat jednoducho ako v Perle a C++ > > f = open("data.txt") > while line = f.readline(): > print line f.close() > Já raději píšu f = open("data.txt") for line in f: print line f.close() pepr ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz ___ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz
Re: [python] Buducnost Pythonu: lambda, map, filter
Som si teraz pozeral to video z prednasky s Guidom ... Rad by som si to video pozrel tiez, kde je to k dispozicii? Jan Janech [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 21.11.2006 20:58 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Som si teraz pozeral to video z prednasky s Guidom (na moje prekvapenie som tomu rozumel :) - kto by povedal, ze mi to cumenie na filmy v povodnom zneni /aj ked len s titulkami/ na nieco bude) a cital si PEP 3100 a niektore veci ma potesili a niektore sklamali: - lambda zostava (super :D) - tak isto map/filter (nepouzivam, je mi to jedno) - reduce zrusili (--||--) - na moju zlost zrusili builtin fciu callable (just call the object and catch the exception - ble) - zrusili dict.setdefault() (zrovna ked som objavil, ake je to pekne riesenie a zacal to pouzivat) - a podla mna najhorsie, rusia statement print a nahradzaju ho za funkciu... neviem aky bude mat potom este vyznam... teraz aspon sprehladnoval vypisovanie na stdout/do textoveho suboru. inak maju tam strasne vela vylepseni... ale tieto cistky (minimalne aspon u toho print (:D) si mohli odpustit) ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
[EMAIL PROTECTED] wrote: Som si teraz pozeral to video z prednasky s Guidom ... Rad by som si to video pozrel tiez, kde je to k dispozicii? http://video.google.com/videoplay?docid=-6459339159268485356q=python+3000 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Radek Kanovsky wrote: # 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 :-) Misto toho, aby pouzili [1] :) [1] http://cs.wikipedia.org/wiki/Fibonacciho_posloupnost#Algoritmy_v.C3.BDpo.C4.8Dtu -jkt -- cd /local/pub more beer /dev/mouth signature.asc Description: OpenPGP digital signature ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos wrote: for line in file('data.txt'): print line Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani otvarat/zatvarat file. Len neviem ako to funguje. Nie je to nahodou to iste ako f = open(data.txt) for line in f.readlines(): print line f.close() t. j., ze vsetky riadky sa nacitaju naraz do zoznamu a potom sa cez ten zoznam iteruje? To by bolo potom z hladiska vyuzitia pamati nieco uplne ine ako ten priklad co som uviedol dole, kde citam subor riadok po riadku. Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda next() file objectu vola priamo Cckova fcia readahead_get_line_skip, ktora nacita riadok. Co sa tyka otvarania suboru, open je len alias na file, takze otvarat ho treba :) A co sa tyka zatvarania suboru (tiez som pozeral v zdrojakoch - pre istotu), ked zrusis referenciu na subor, tak sa automaticky zavrie. Teda: f = open(data.txt) del f a f = open(data.txt) f.close() spravia to iste: zavru subor. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
for line in file('data.txt'): print line Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani otvarat/zatvarat file. Len neviem ako to funguje. Nie je to nahodou to iste ako f = open(data.txt) for line in f.readlines(): print line f.close() t. j., ze vsetky riadky sa nacitaju naraz do zoznamu a potom sa cez ten zoznam iteruje? To by bolo potom z hladiska vyuzitia pamati nieco uplne ine ako ten priklad co som uviedol dole, kde citam subor riadok po riadku. Jan Janech [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 13.11.2006 21:24 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Roman Miklos wrote: Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby bolo mozne namiesto f = open(data.txt) line = f.readline() while line: print line line = f.readline() f.close() napisat jednoducho ako v Perle a C++ f = open(data.txt) while line = f.readline(): print line f.close() Tiez by som privital prirarenie ako operator (dokonca by bolo super aj keby sa da prekryt v triede :D ), ale toto je akurat jeden s pripadov, kedy sa viac hodi pouzitie iteratorov. Tato konstrukcia sa prave pouziva ako nahrada za ne. podla mna je krajsie a prehladnejsie for line in file('data.txt'): print line Ale samozrejme je vela pripadov, ked sa oplati pouzit operator priradenia vramci ineho vyrazu. ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
for line in file('data.txt'): print line Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani otvarat/zatvarat file. Len neviem ako to funguje. Nie je to nahodou to iste ako f = open(data.txt) for line in f.readlines(): print line f.close() je to spíš jako for line in f.xreadlines(): Kde xreadlines() vrací iterátor, který čte soubor postupně na rozdíl od readlines který přečte soubor najednou do seznamu řádků. Přidám se ale k nadávání na odstraňování starých prvků jazyka. Xreadlines je od verze 2.3 označeno za zastaralé. for line in file(data.txt).xreadlines(): ... se mi líbí víc než preferované for line in file('data.txt') ... protože explicit is better than implicit. Xreadlines() totiž vyjadřuje že se čte po řádcích a nikoliv po bytech,unicode znacích nebo co já vím jakých jednotkách v souboru. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda next() file objectu vola priamo Cckova fcia readahead_get_line_skip, ktora nacita riadok. ok takze cita to riadok po riadku a nie najprv vsetko naraz do zoznamu Kedze file je alias pre open print file=%s % file('data.txt') file=open file 'data.txt', mode 'r' at 0x00A1D3C8 print open=%s % open(data.txt) open=open file 'data.txt', mode 'r' at 0x00A1D3C8 tak sa namiesto noveho for line in file('data.txt'): print line da pouzit aj stare for line in open('data.txt'): print line Tomu s tym zatvaranim nerozumiem, lebo ked urobim explicitne f.open('data.txt') tak si to aj zavriem f.open('data.txt') ale ak explicitne neotvaram ako je to v tom pripade cez file() hore, tak nemam ziadnu referenciu na subor, ktoru by som mohol vymazat a nemam ani co zatvorit. Jedine, ze by to bolo tak dokonale, ze subor uz netreba zatvarat o com pochybujem :-) Jan Janech [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 14.11.2006 11:24 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Roman Miklos wrote: for line in file('data.txt'): print line Mhm, to vyzera naozaj super, na moje pocudovanie tam netreba ani otvarat/zatvarat file. Len neviem ako to funguje. Nie je to nahodou to iste ako f = open(data.txt) for line in f.readlines(): print line f.close() t. j., ze vsetky riadky sa nacitaju naraz do zoznamu a potom sa cez ten zoznam iteruje? To by bolo potom z hladiska vyuzitia pamati nieco uplne ine ako ten priklad co som uviedol dole, kde citam subor riadok po riadku. Pozeral som do zdrojakov pythonu, __iter__ vracia sam seba. Potom metoda next() file objectu vola priamo Cckova fcia readahead_get_line_skip, ktora nacita riadok. Co sa tyka otvarania suboru, open je len alias na file, takze otvarat ho treba :) A co sa tyka zatvarania suboru (tiez som pozeral v zdrojakoch - pre istotu), ked zrusis referenciu na subor, tak sa automaticky zavrie. Teda: f = open(data.txt) del f a f = open(data.txt) f.close() spravia to iste: zavru subor. ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Petr Prikryl wrote: Jde o to, že Python může k reduce a lambda nabídnout alternativy, které nelze srovnávat s primitivností podmíněného skoku. Ty alternativy mi připadají lepší než reduce/lambda. Dobře, tohle mě zajímá: Jakou alternativu nabízí Python k foldl (které si přejmenoval na „reduce“)? U map je to jasné, přeci jen list comprehension ani generator expression nejsou o moc horší, navíc generator expression má lazy sémantiku, což je Good Thing(TN). Ale u toho reduce() trošku tápu. Jakub Hegenbart ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Dobře, tohle mě zajímá: Jakou alternativu nabízí Python k foldl (které si přejmenoval na reduce)? U map je to jasné, přeci jen list comprehension ani generator expression nejsou o moc horší, navíc generator expression má lazy sémantiku, což je Good Thing(TN). Ale u toho reduce() trošku tápu. Taky jsem tápal, ale GvR mi to objasnil na zmíněné stránce: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 So now reduce(). This is actually the one I've always hated most, because, apart from a few examples involving + or *, almost every time I see a reduce() call with a non-trivial function argument, I need to grab pen and paper to diagram what's actually being fed into that function before I understand what the reduce() is supposed to do. Zrušením reduce() GvR chrání americké lesy. Jan Matějka ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
So now reduce(). This is actually the one I've always hated most, because, apart from a few examples involving + or *, almost every time I see a reduce() call with a non-trivial function argument, I need to grab pen and paper to diagram what's actually being fed into that function before I understand what the reduce() is supposed to do. Zrušením reduce() GvR chrání americké lesy. Myslím, že by se uplatnil v politice a jako právník. Taktéž bych rád prozkoumal zákulisní spojení mezi organizací greenpeace a GvR. :-) Miloslav Ponkrác ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Tiez som cital, co napisal Guido v tom clanku All Things Pythonic The fate of reduce() in Python 3000 http://www.artima.com/weblogs/viewpost.jsp?thread=98196 Ale rozumel som z toho akurat ...blabla...reduce()...blabla..., teda ziadne dovody. Aj ked reduce pouzivam len v spojeni s glob(), prave preto, ze toto pouzitie uvadzaju v kapitole 9 knihy http://www.grada.cz/katalog/kniha/naucte-se-python/ (pozri priklad dole) povazoval som pouzite reduce() za pytonicke. Naopak Guido sa teraz snazi v tom horeuvedenom clanku s nadpisom 'All Things Pythonic' povedat asi to, ze reduce() nie je pytonicky. Kazdopadne si myslim. ze reduce() ma opodstatnenie, kto tomu rozumie, moze robit veci elegantnejsie. Tu je par jednoduchych prikladov na reduce(): --- reduce.py --- # reduce(function, list [, init_val]) # aplikuje fukciu 2 argumentov na prvky zoznamu zlava do prava, # t.j. tak, aby sa zoznam zredukoval na jednu hodnotu. # S init_val mozno zadat inicializacnu hodnotu # Napriklad: # reduce(lambda x,y:x+y,range(1,6),5) # vypocita 5+(1+2)+3)+4)+5))=20. # priklady: # suma 1,..,n suma1=lambda n: reduce(lambda x,y: x+y, range(n+1)) print suma(%d)=%d %(5, suma1(5)) # suma zoznamu suma2=lambda l: reduce(lambda x,y: x+y, l) l = range(6) print suma(%s)=%d % (l, suma2(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)) # 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)) print filez # bez pouzitia reduce() filez=[] for arg in arguments: arg_list=glob.glob(arg) filez += arg_list print filez --- koniec --- Myslim, ze reduce() nebude nahradeny nijakou inou alternativou. Jednoducho to co reduce() robil za teba, budes musiet naprogramovat. Jakub Hegenbart [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 13.11.2006 15:34 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Petr Prikryl wrote: Jde o to, že Python může k reduce a lambda nabídnout alternativy, které nelze srovnávat s primitivností podmíněného skoku. Ty alternativy mi připadají lepší než reduce/lambda. Dobře, tohle mě zajímá: Jakou alternativu nabízí Python k foldl (které si přejmenoval na ?reduce?)? U map je to jasné, přeci jen list comprehension ani generator expression nejsou o moc horší, navíc generator expression má lazy sémantiku, což je Good Thing(TN). Ale u toho reduce() trošku tápu. Jakub Hegenbart ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Guido najprv vsetko co sa dalo prebral z inych jazykov (Perl,...) a musim povedat, ze sa mu to podarilo dobre sklbit dokopy. Ale teraz nastal obrat v jeho mysleni a chce zase robit v Pythone taketo cistky, to sa mi nepaci. Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby bolo mozne namiesto f = open(data.txt) line = f.readline() while line: print line line = f.readline() f.close() napisat jednoducho ako v Perle a C++ f = open(data.txt) while line = f.readline(): print line f.close() a keby praca s regularnymi vyrazmi bola taka flexibilna ako v Perle cez operator =~ napr. line = A1A 1A1 BBBCCC line =~ s/(\S{3})\s*/$1 /g # vysledok: ine = A1A 1A1 BBB CCC alebo if riadok =~ /(\d{6}\/\d{3,4})/ : print riadok obsahuje rodne cislo Vtedy by som Guida chvalil :-))) superman [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 13.11.2006 18:24 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Naopak Guido sa teraz snazi v tom horeuvedenom clanku s nadpisom 'All Things Pythonic' povedat asi to, ze reduce() nie je pytonicky. To je jako boj za čistou rasu. Navrhuji zastřelit GvR, než bude ještě více despotický ve svým rozhodnutích. Protože já jeho argumenty začínám považovat ... za trochu subjektivní. Podmíněné přiřazení není v Pythonu, protože to příliš připomíná C. Přiřazení není výrazem, protože to připomíná C (i když s tímto možná i trochu souhlasím). Funkctionální věci příliš připomínají Lisp, nebo Scheme. Já bych navrhnul, aby GvR dostal doživotní soudní zákaz s ostrahou učit se další programovací jazyky, jinak z Pythona zmizí úplně vše. ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby bolo mozne namiesto f = open(data.txt) line = f.readline() while line: print line line = f.readline() f.close() napisat jednoducho ako v Perle a C++ f = open(data.txt) while line = f.readline(): print line f.close() To bych taky uvítal, kdyby přiřazení bylo výrazem. Jak to jednou člověk pozná, nemůže se bez toho obejít. a keby praca s regularnymi vyrazmi bola taka flexibilna ako v Perle cez operator =~ napr. line = A1A 1A1 BBBCCC line =~ s/(\S{3})\s*/$1 /g # vysledok: ine = A1A 1A1 BBB CCC alebo if riadok =~ /(\d{6}\/\d{3,4})/ : print riadok obsahuje rodne cislo Zase bych to s Perlem nepřeháněl. Když napíšete: if re.match('...',riadok): print riadok obsahuje rodne cislo Nezmnožoval bych to co není nutné. Ale hlavně bych se dnes už držel zpětné kompatibility a hlavně už bych neopisoval nic z Perlu. Perl není IMHO dobře navržený jazyk. Docela bych věřil že GvR převzal z Perlu i tu pitomost, že Larry připravuje Perl 6 nekompatibilní s předhcozími verzemi. Jenže tady se zapomíná, že Perl je a vždycky zůstane malým skriptovacím jazykem a sotva kdy se v tom napíše něco většího (výjimky potvrzující pravidlo pomiňme), protože zkrátka udržoval větší projekt v Perlu není jednoduché. Upřímně řečeno, kdybych v době kdy jsem se začal zajímat o Python věděl, že se připravuje další zpětně nekompatibilní verze Pythona, do učení Pythonu bych se nepustil a učil bych se něco jiného. Bohužel Python je tak dobrý jazyk, že se mi od něj nechce odcházet. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos napsal(a): Radsej by som naopak uvital keby sa preberalo stale viac, napriklad keby bolo mozne namiesto f = open(data.txt) line = f.readline() while line: print line line = f.readline() f.close() napisat jednoducho ako v Perle a C++ f = open(data.txt) while line = f.readline(): print line f.close() Já raději píšu f = open(data.txt) for line in f: print line f.close() pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
superman Roman Miklóš V trede Statické metody v Pythonu (http://www.py.cz/pipermail/python/2006-November/004991.html) superman napisal: ... map,filter a podobné (což prý v další verzi Pythonu nebude... [...] Zajímavý je blog Rossuma: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 Nedávno jsem od něj četl, že v Pythonu není podmíněné přiřazení, ani přiřazení není výrazem, neboť by to příliš připomínalo C. Teď píše, že lambda příliš připomíná Lisp, nebo Scheme, tudíž musí ven. Já bych doporučoval vůbec s tímto příastupem škrtnout celý Python, protože až příliš připomíná programovací jazyk. O osudu lambda se diskutovalo na comp.lang.python. Osobně jsem lambda nikdy nepotřeboval. Jakékoliv jeho použití v Pythonu se podle mě dá jednoduše přepsat bez lambda způsobem, který je proti lambda přehlednější a srozumitelnější. Přiřazení jako výraz působí komplikace protože se v boolovských výrazech může poplést == s =. Podmíněný výraz je novinkou v Python 2.5. Python je procedurální a nikoliv funkcionální jazyk. Z funkcionálních zápisů v něm fungují jen ty věci, které se dají JEDNODUŠE převést na procedurální postup. Jiné výhody funkcionálních jazyků zde odpadají (například automatická paralelizace výpočtu). Z The Zen of Python, by Tim Peters bych k tomu vybral... Simple is better than complex. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. There should be one-- and preferably only one --obvious way to do it. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Navrhuji rozebrat několik případů, kde se používají lambda, map, filter, reduce a pohádat se o alternativním zápisu jinými prostředky jazyka Python ;-) pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
E-mail Petr Prikryl ze dne Friday 10 November 2006 11:56: superman Navrhuji rozebrat několik případů, kde se používají lambda, map, filter, reduce a pohádat se o alternativním zápisu jinými prostředky jazyka Python ;-) self.assertRaises(ValueError, lambda:cls.myBadMethod()) Tohle je casto pouzivany oneliner, jehoz try - catch - raise na 5 radku sakra prodlouzi unittesty. pepr -- Lukáš Linhart pgp868KYSF9mO.pgp Description: PGP signature ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
superman [...] Osobně lambda především omezuje zbytečné definice krátkých funkcí, které se použijí jednorázově. To může zpřehlednit maximálním způsobem zdrojový kód. Přepsat se samozřejmě dá všechno, protože je matematicky dokázáno, že jakýkoli algoritmus se dá napsat pouze s podmíněným skokem. Jde o to, že Python může k reduce a lambda nabídnout alternativy, které nelze srovnávat s primitivností podmíněného skoku. Ty alternativy mi připadají lepší než reduce/lambda. Přiřazení jako výraz působí komplikace protože se v boolovských výrazech může poplést == s =. To je bohužel problém Pythonu, že umožňuje do logických operátorů zavést i jiné, než logické typy. Tohle v jazycích nesnáším, tahle vlastnost je error prone a bohužel jí hodně tvůrců jazyka z nějakého, pro mě sadistického důvodu zavádí. Ten sadistický důvod se jmenuje zpětná kompatibilita. Začíná to u strojových instrukcí, přes C, C++ a vše, co se je snaží napodobovat. Strojové instrukce neznají typy ve smyslu vyššího programovacího jazyka. Nula je false, cokoliv jiného je true. Python kdysi boolovské hodnoty vůbec neznal. Tohle bohužel dobře ošetřila Java, nebo Pascal, že logické operátory musejí mít jako operandy pouze logické typy. Pak rozhodně není žádný problém s = a ==. Takže problém, který popisujete je sekundární. ... ale ne v Pythonu. V něm můžu jakémukoliv jménu přiřadit cokoliv (referenci na libovolný objekt). Pascal a Java dělají typovou kontrolu v době kompilace a identifikátor je svázán s typem. V Pythonu by tedy docházelo k výrazně zapeklitějším chybám. Díky té blbosti, že logické výrazy pracují i s nelogickými typy je Python závislý na kontextu. Tentýž výraz znamená něco jiného v podmínce a něco jiného mimo podmínku. Nechápu proč prostě dovolovat podmínky typu: a = 2 if a: print je to tam Já bych si přál jazyk, který striktně přikazuje napsat: a = 2 if a != 0: print je to tam Říká se tomu interpretace v boolovském kontextu. Je to věc dohody. Taky píšu raději if len(lst) 0: ... než jen if lst: ... Ale hodně lidí dává přednost stručnosti... ;o) a taky vyhození této vlastností by v porovnání s vyhozením lambda bylo mnohem výraznější... [...] hrubé PORUŠENÍ ZPĚTNÉ KOMPATIBILITY jazyka, a pokud vím, zatím žádný jazyk tohle nepřežil ve zdraví. [...]Já se nechci hádat o alternativním zápisu. Mě jsou takovéto hádky ukradené. Prostě lambda, map, filter, reduce tam v Pythonu již jsou a z toho vyplývá, že tam mají zůstat. A nebo tam neměly nikdy být. Tyhle hádky měly skutečný smysl v době návrhu jazyka, teď už jsou pasé. Trochu mi to připomíná Nic mi neříkejte! Já na to přijdu sám.. Debata kolem návrhu odstranit lambda a spol byla tuhá. Pokud si dobře pamatuji, implementace lambda je v jádře jazyka udělána nějak nečistě a některé věci komplikuje. Asi komplikuje i další vývoj. V novějších verzích Pythonu se objevily generátory a generátorové výrazy, které zpětně vyjasňují i konstrukce s tak krkolomným názvem, jako je list comprehension (generátor seznamu). Odhaduji, že i po uvedení verze Python 3(000) bude Python 2.x dlouho podporován a opravován. Nic Vám nebrání zůstat u něj. Disky budou tak veliké, že souběžná instalace obou verzí interpretu bude chápána jako nulový problém. Nedivil bych se, kdyby Python 3000 vyřešil věc pragmaticky tím, že Python 2.x by byl součástí instalace Python 3000 jen kvůli zaručení zpětné kompatibility. Teď to tam je, a pak by tam podle Zen of Miloslav Ponkrác: 1) Budeš v maximální možné míře dodržovat zpětnou kompatibilitu Spousta odborníků používajících C++ říká, že jednou z největších chyb byla asi snaha být důsledně zpětně kompatibilní s C. 2) Jazyk, který kdy v historii hrubě porušil zpětnou kompatibilitu vymřel. Příklad? pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Mne osobne sa tieto funkcionalne prvky v Pythone pacia, i ked ziadne funkcionalne jazyky v praxi nepouzivam. Myslim, ze to robilo Python zaujimavym i pre privrzencov FP a ukazalo to ako sa daju pouzit veci z FP v beznej praxi. Tu uvadzam 2 priklady pouzitia funkcionalneho pristupu 1) pri rozvinuti argumentov s wildcard-znakmi (?, *) na platne cesty, kde map() a reduce() umoznuju takyto kompaktny zapis: argument = sys.argv[1:] filez = reduce(operator.add, map(glob.glob, argument)) 2) callbacky pri widgetoch v Tkinteri: * Ak je ten callback jednoducha funkcia a pouzije sa iba raz napriklad pri jednom buttone, naco ju definovat sepratane pre cely skript, ked ju staci zadefinovat cez lambda iba na tom mieste kde sa pouzije. * callback s argumentom - t.j ak chces napr. pouzit ten isty callback pri viacerych buttonoch, napr. def callback(n): print button, n Button(text=jeden, command=lambda: callback(1)).pack() Button(text=dva, command=lambda: callback(2)).pack() ... Petr Prikryl [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 10.11.2006 11:56 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter superman Roman Miklóš V trede Statické metody v Pythonu (http://www.py.cz/pipermail/python/2006-November/004991.html) superman napisal: ... map,filter a podobné (což prý v další verzi Pythonu nebude... [...] Zajímavý je blog Rossuma: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 Nedávno jsem od něj četl, že v Pythonu není podmíněné přiřazení, ani přiřazení není výrazem, neboť by to příliš připomínalo C. Teď píše, že lambda příliš připomíná Lisp, nebo Scheme, tudíž musí ven. Já bych doporučoval vůbec s tímto příastupem škrtnout celý Python, protože až příliš připomíná programovací jazyk. O osudu lambda se diskutovalo na comp.lang.python. Osobně jsem lambda nikdy nepotřeboval. Jakékoliv jeho použití v Pythonu se podle mě dá jednoduše přepsat bez lambda způsobem, který je proti lambda přehlednější a srozumitelnější. Přiřazení jako výraz působí komplikace protože se v boolovských výrazech může poplést == s =. Podmíněný výraz je novinkou v Python 2.5. Python je procedurální a nikoliv funkcionální jazyk. Z funkcionálních zápisů v něm fungují jen ty věci, které se dají JEDNODUŠE převést na procedurální postup. Jiné výhody funkcionálních jazyků zde odpadají (například automatická paralelizace výpočtu). Z The Zen of Python, by Tim Peters bych k tomu vybral... Simple is better than complex. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. There should be one-- and preferably only one --obvious way to do it. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Navrhuji rozebrat několik případů, kde se používají lambda, map, filter, reduce a pohádat se o alternativním zápisu jinými prostředky jazyka Python ;-) pepr ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos napsal(a): 2) callbacky pri widgetoch v Tkinteri: * Ak je ten callback jednoducha funkcia a pouzije sa iba raz napriklad pri jednom buttone, naco ju definovat sepratane pre cely skript, ked ju staci zadefinovat cez lambda iba na tom mieste kde sa pouzije. * callback s argumentom - t.j ak chces napr. pouzit ten isty callback pri viacerych buttonoch, napr. def callback(n): print button, n Button(text=jeden, command=lambda: callback(1)).pack() Button(text=dva, command=lambda: callback(2)).pack() ... def callback(n): print button, n from functools import partial as callmeback Button(text=jeden, command=callmeback(callback,1).pack() Button(text=dva, command=callmeback(callback,2).pack() -- geon Pavel Kosina ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
superman: a = 2 if a: print je to tam Já bych si přál jazyk, který striktně přikazuje napsat: a = 2 if a != 0: print je to tam Je zjavne ze toto Python prebral z Perlu, ked vznikal snazil sa vela prebrat z Perlu. Tam sa tiez vsetko 0 vyhodnocuje ako True a to umoznuje pisat tie typicke veci ako open(IN, program.log) or die Nejde otvorit subor\n; Ja osobne si myslim, ze toto uzitocne pre skriptovaci jazyk Jde o hrubé PORUŠENÍ ZPĚTNÉ KOMPATIBILITY jazyka, a pokud vím, zatím žádný jazyk tohle nepřežil ve zdraví. To si myslim tiez :-) Pamatam si (kedysi som robil numeriku aj vo Fortrane 77) ked som videl Fortran 90/95 tak ma to totalne rozculilo preco sa to stale vola Fortran, ked je to uplne ine...Neviem jak to tam teraz vyzera, ale myslim si, ze zlomok tych ktori robia vo Fortrane 90/95 je mizivy proti tym co robia nadalej v g77. ..nemá Python vůbec nárok tyto věci z jazyka vyhazovat. Toto si myslim tiez, lebo Python mi je jediny znamy jazyk, ktory podporuje 3 paradigmy: proceduralny funkcionalny objektovo orientovany A vsetky tieto 3 paradigmy su v Pythone v uplnej harmonii a mozes sa slobodne rozhodnut ako ich vzajomne sklbis. FP je tu prave urobene nenasilnou formou, neutopis sa v mnozstve zatvoriek ako v Scheme/LISP a jazyk je pekny (nie ako Haskell) Argumenty typu, co je efektivne, alebo neefektivne (ze napriklad map() je menej efektivny ako urobit to cez cyklus) si myslim, ze sa do tohoto jazyka nehodia, pretoze je to jazyk skriptovaci. /Kto chce robit efektivny pristup do databazy nech to robi cez nativne pristupy (COBOL, RPG) a kto chce robit rychle systemove veci nech si zvoli C++./ Okrem toho sa kazdy v Pythone moze rozhodnut pouzit iny pristup a nie FP. Myslim, ze jednym z hlavnych cielov Pythonu bolo aby bol kod kompaktny a zrozumitelny, preto zaviedli aj povinne odsadzovanie, ktore mi na Pythone zo zaciatku vadilo, ale postupom casu som uznal ze to fakt kod standardizuje a robi ho zrozumitelnym. Jednou z veci ako urobit kod kompaktnejsim a na niektorych miestach aj zrozumitelnejsim boli prave aj prvky FP. A preto ma Guido dost prekvapil, ked to chce odstranit. Dufam, ze nejakym sposobom sa FP v Pythone zachova, bud budu k tomu vytvorene nejake moduly, alebo mozno vznikne iny jazyk zalozeny na Pythone 2.x, ktoreho verzie mozu napr. konvergovat k e = 2.7182 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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
ok tak callmeback... A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu? Napriklad toto: def linear(c): return (lambda x: c*x) f1=linear(1) f2=linear(5) for x in range(5): print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x)) f1(0)=0, f2(0)=0 f1(1)=1, f2(1)=5 f1(2)=2, f2(2)=10 f1(3)=3, f2(3)=15 f1(4)=4, f2(4)=20 Pavel Kosina [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 10.11.2006 14:23 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Roman Miklos napsal(a): 2) callbacky pri widgetoch v Tkinteri: * Ak je ten callback jednoducha funkcia a pouzije sa iba raz napriklad pri jednom buttone, naco ju definovat sepratane pre cely skript, ked ju staci zadefinovat cez lambda iba na tom mieste kde sa pouzije. * callback s argumentom - t.j ak chces napr. pouzit ten isty callback pri viacerych buttonoch, napr. def callback(n): print button, n Button(text=jeden, command=lambda: callback(1)).pack() Button(text=dva, command=lambda: callback(2)).pack() ... def callback(n): print button, n from functools import partial as callmeback Button(text=jeden, command=callmeback(callback,1).pack() Button(text=dva, command=callmeback(callback,2).pack() -- geon Pavel Kosina ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos napsal(a): ok tak callmeback... A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu? Napriklad toto: f1(0)=0, f2(0)=0 f1(1)=1, f2(1)=5 f1(2)=2, f2(2)=10 f1(3)=3, f2(3)=15 f1(4)=4, f2(4)=20 class linear(): def __init__(self,c): self.c=c def __call__(self,x): return self.c * x f1=linear(1) f2=linear(5) for x in range(5): print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x)) ;-) -- geon Pavel Kosina ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
ok :-) , ale s lambda sa mi to pacilo viac. Pavel Kosina [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 10.11.2006 15:22 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Roman Miklos napsal(a): ok tak callmeback... A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu? Napriklad toto: f1(0)=0, f2(0)=0 f1(1)=1, f2(1)=5 f1(2)=2, f2(2)=10 f1(3)=3, f2(3)=15 f1(4)=4, f2(4)=20 class linear(): def __init__(self,c): self.c=c def __call__(self,x): return self.c * x f1=linear(1) f2=linear(5) for x in range(5): print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x)) ;-) -- geon Pavel Kosina ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos [...] 1) pri rozvinuti argumentov s wildcard-znakmi (?, *) na platne cesty, kde map() a reduce() umoznuju takyto kompaktny zapis: argument = sys.argv[1:] filez = reduce(operator.add, map(glob.glob, argument)) Předpokládám, že samostatný skript by mohl vypadat nějak takto: test.py import sys import glob arguments = sys.argv[1:] files = reduce(lambda a, b: a+b, map(glob.glob, arguments), []) print files V tomto případě bych byl asi o dva řádky delší. Odhaduji, že víc lidí by rozumělo lépe tomu druhému zápisu. test.py import sys import glob arguments = sys.argv[1:] files = [] for mask in arguments: files.extend(glob.iglob(mask)) print files pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Roman Miklos A ako urobim bez lambda nejaku funkciu, ktora mi vrati funkciu? Napriklad toto: def linear(c): return (lambda x: c*x) f1=linear(1) f2=linear(5) for x in range(5): print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x)) f1(0)=0, f2(0)=0 f1(1)=1, f2(1)=5 f1(2)=2, f2(2)=10 f1(3)=3, f2(3)=15 f1(4)=4, f2(4)=20 def linear(c): def fn(x): return c * x return fn f1=linear(1) f2=linear(5) for x in range(5): print f1(%d)=%d, f2(%d)=%d % (x,f1(x),x,f2(x)) Je to prakticky stejné, jen je to pojmenované. pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Petr Prikryl napsal(a): Roman Miklos [...] 1) pri rozvinuti argumentov s wildcard-znakmi (?, *) na platne cesty, kde map() a reduce() umoznuju takyto kompaktny zapis: argument = sys.argv[1:] filez = reduce(operator.add, map(glob.glob, argument)) Předpokládám, že samostatný skript by mohl vypadat nějak takto: test.py import sys import glob arguments = sys.argv[1:] files = reduce(lambda a, b: a+b, map(glob.glob, arguments), []) print files V tomto případě bych byl asi o dva řádky delší. Odhaduji, že víc lidí by rozumělo lépe tomu druhému zápisu. Stejný počet řádků: import sys import glob arguments = sys.argv[1:] files = [glob.glob(mask) for mask in arguments] print files -- geon Pavel Kosina ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Pavel Kosina Stejný počet řádků: import sys import glob arguments = sys.argv[1:] files = [glob.glob(mask) for mask in arguments] print files Jenže to dělá něco jiného ;-) pepr ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Petr Prikryl napsal(a): Pavel Kosina Stejný počet řádků: import sys import glob arguments = sys.argv[1:] files = [glob.glob(mask) for mask in arguments] print files Jenže to dělá něco jiného ;-) hmm, tak nic. V čem, Petře, píšeš příspěvky? Mě se tvé příspěvky řadí ve stromečku příspěvků vždy na absolutně divná místa, téměř nikdy ne k tomu, na který reaguješ ;-) Že by podnikový Exchange? -- geon Pavel Kosina ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
-- glob_prikl.py import sys, glob, operator arguments = sys.argv[1:] files = [glob.glob(mask) for mask in arguments] print files argument = sys.argv[1:] filez = reduce(operator.add, map(glob.glob, argument)) print filez -- napr. pri pouziti: glob_prikl.py editor.py oop1*.* ten list comprehention da toto [['editor.py'], ['oop1.py', 'oop1.py~']] a to druhe da toto, to je to co som chcel, t.j. vsetkky subory v jednom liste ['editor.py', 'oop1.py', 'oop1.py~'] Mimochodom: 1. List comprehention sa mi zda asi podobne zrozumitelny ako tie funktionalne prvky 2. Tento priklad mam z knihy Lutz/Ascher. Uvod do Pythonu (alebo tak podobne sa to vola - vyslo to aj v Grade) z kapitoly 9. Typicke ulohy v Pythone (je to tu: http://www.oreilly.de/catalog/einpythonger/chapter/ch09.html) Takze povazoval som to za typicky postup v Pythone - zial od verzie 3 uz nebude Petr Prikryl [EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 10.11.2006 16:19 Please respond to Konference PyCZ python@py.cz To Konference PyCZ python@py.cz cc Subject Re: [python] Buducnost Pythonu: lambda, map, filter Pavel Kosina Stejný počet řádků: import sys import glob arguments = sys.argv[1:] files = [glob.glob(mask) for mask in arguments] print files Jenže to dělá něco jiného ;-) pepr ___ Python mailing list Python@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 ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python
Re: [python] Buducnost Pythonu: lambda, map, filter
Tohle je asi nejlepší materiál co se změní v Pythonu 3000 http://www.python.org/dev/peps/pep-3100/#id68 K tomu ještě novější dovětky: http://www.python.org/dev/peps/pep-3101/ http://www.python.org/dev/peps/pep-3102/ http://www.python.org/dev/peps/pep-3103/ Změny opravdu nebudou kosmetické. ___ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python