2015-02-09 16:35 GMT+01:00 Honza Král <honza.k...@gmail.com>: > ne, o tom jsem nemluvil, predpokladam python 3 :) > > Materializuje se kvuli predani do intersection - viz operator '*' >
To se dá vyřešit třeba nahrazením: ... set.intersection(*map( ... za: ... reduce(set.intersection, map( ... a je to čistě funkcionální (bez ohledu na to jestli je to "Pythonic"). > Mě se líbí explicitní použití funkcí map() a filter(), protože je to pro > začátečníka čitelnější a pochopitelnější, než List Comprehension > > Tohle me zajima - ja mam presne opacnou zkusenost. Bavime se o > zacatecnicich v programovani (s temi mam zkusenost ja), ci jen > zacatecniky s pythonem, ale programatory? Myslím si, že pro člověka, který vidí poprvé map a filter a List Comprehension, je snažší najít si v dokumentaci co dělají funkce map a filter a pochopit je samostatně. Protože to jsou dvě oddělené věci. Zatímco když se použije List Comprehension kombinující map i filter v jednom zápise, tak je tam toho na rozluštění a pochopení více. A taky ten List Comprehension nejde snadno dohledat v dokumentaci, protože z kódu není poznat, jak se to jmenuje (neobsahuje klíčová slova jako "map" či "filter"). Nějakou zásadnější osobní zkušenost s výukou nemám. Ale minimálně na škole jsem se setkal s tím, že se úplní začátečníci učí nejdříve funkcionální paradigma, tak by ten map a filter mělo být snadné pochopit pro kohokoliv. Nicméně naučit se místo toho v Pythonu rovnou List Comprehension určitě není na škodu. Honza > Honza Král > E-Mail: honza.k...@gmail.com > Phone: +420 606 678585 > > > 2015-02-09 16:34 GMT+01:00 Pavel S <pa...@schon.cz>: > > Jeste pokud bychom se chteli zbavit 'materializace seznamu uprostred', > lze in-place pouzit itertools.ifilter a itertools.imap. > > > > Dne pondělí 9. února 2015 16:17:52 UTC+1 Pavel S napsal(a): > >> Na pythonu je krasne, ze jedna a tataz vec lze udelat mnoha zpusoby a > ja nabidnul jeden z nich: > >> > >> * nemeni vnitrni stav oproti reseni s pop() > >> * nepouziva operator & na setu, cimz me nenuti zjistovat, co tento > operator vlastne dela. (intersection je jasne...) > >> * nepouziva list comprehension > >> * je rozepsane do vice radku, primocare a jasne citelne > > _______________________________________________ > > 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 >
_______________________________________________ Python mailing list python@py.cz http://www.py.cz/mailman/listinfo/python Visit: http://www.py.cz