2013/9/17 Piergiuliano Bossi <pgbo...@gmail.com> > https://en.wikipedia.org/wiki/List_comprehension#History > > :D > > Non ho mai affernato che le abbiano inventate per il Python, ma il bello di Python e' che ha preso il meglio di altri linguaggi unendolo
> on e' particolarmente interessante focalizzarsi ne' su map/reduce ne' >> sulle collezioni in generale. >> > Era per dire, va bene qualsiasi cosa > Comunque, un altro esempio e' questo => puoi usare itertools.chain per >> implementare una flatmap (sicuro che non vuoi il codice Python? allora non >> leggere :) ) >> > Ngueeee mi tratta maleeeeeeeeeee ;P > Da un mio scambio privato con un pythonista da queste parti: > >>> func = lambda 2 * x > >>> func(2) > 4 > >>> a = [1, 2, 3, 4] > >>> b = [2, 3, 4, 5] > >>> map(func, a) > [2, 4, 6, 8] > >>> from itertools import * > >>> list(chain(*[a, b])) > [1, 2, 3, 4, 2, 3, 4, 5] > >>> list(chain([a, b])) > [[1, 2, 3, 4], [2, 3, 4, 5]] > >>> list(chain(*map(func, a))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: 'int' object is not iterable > >>> list(chain(*map(func, [a, b]))) > [1, 2, 3, 4, 1, 2, 3, 4, 2, 3, 4, 5, 2, 3, 4, 5] > >>> func2 = lambda iter: sum(iter) > >>> func2(a) > 10 > >>> list(chain(*map(func2, [a, b]))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: 'int' object is not iterable > >>> func2 = lambda iter: [sum(iter)] > >>> func2(a) > [10] > >>> map(func2, [a, b]) > [[10], [14]] > >>> list(chain(*map(func2, [a, b]))) > [10, 14] > >>> list(chain.from_iterable(map(func2, [a, b]))) # this saves you from > typing at the expense of typing from_iterable > [10, 14] > >>> > > > Cosi' facendo se la tua collezione e' gia' flat hai un'eccezione (perche' > i singoli elementi non sono iterabili). > > Qual e' il modo migliore per implementare una flatmap in Python? Mmmm senza esempi pratici mi spiazzi ;) Carlos -- "Somos los que amasan, sin embargo no tenemos pan, somos los que cavan el carbón, sin embargo tenemos frío somos los que no tienen nada, y estamos viniendo a tomar el mundo." Tassos Livaditis (Poeta greco, 1922, 1988)
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python