[python] Seznamy

Petr Viktorin encukou na gmail.com
Středa Únor 11 10:29:29 CET 2015


2015-02-11 10:08 GMT+01:00 Vladimir Macek <macek na sandbox.cz>:
> On 10.2.2015 20:50, Honza Král wrote:
>> 2015-02-10 20:36 GMT+01:00 Radek Holý <radekholypublic na gmail.com>:
>>> V Pythonu dělám skoro 9 let a pořád platí, že kdykoliv někde
>>> narazím na "reduce", "map" apod. tak mě to vždy zdrží a chvíli mi
>>> trvá, než pochopím o co jde. List comprehensions se mi čtou
>>> snadněji - přirozeněji. Nehledě na to, že ty funkcionální
>>> záležitosti jsou skoro vždy spojené s deklarací jinak zbytečných
>>> funkcí se složitým významem, nebo ještě komplikovanějšími lambda
>>> funkcemi. Každopádně je to prostě otázku vkusu/zvyku... Jedním z
>>> problémů může pro mě být ta prefixová notace. Vypadá to jako Lisp
>>> :-)
>
> Doufám, že se shodneme, že to je věc osobních preferencí a nebudeme si to
> navzájem vyčítat. :-) Zajisté můžu považovat za elegantnější vytáhnout
> filtrační nebo transformační logiku do extra funkce s komentáři a pak jí
> předhodit do filter/map než to patlat do třířádkového C-G. Podotýkám pro
> jistotu znovu, že používám jak filter/map + zřídka reduce, tak C-G, vždy
> podle svého citu pro vhodnost. Snažím se dodržovat Zen.
>
> Kdykoli píšu \, trošku uvnitř umřu.

C/G ale zpětná lomítka nepotřebují, protože jsou vždycky v závorkách.
A i ty třířádkové můžou být stručné a přehledné – někdy přehlednější
než to všechno cpát na jeden řádek.

names = ','.join(it.name
                 for it in items
                 if it.enabled)

Vytáhnutí filtrační/transformační logiky do vlastní funkce je
samozřejmě možné i tady.


Další informace o konferenci Python