[Python] l'amore per il pitone

Piergiuliano Bossi pgbossi a gmail.com
Mar 17 Set 2013 19:32:44 CEST


2013/9/17 Carlos Catucci <carlos.catucci a gmail.com>

>
> 2013/9/17 Piergiuliano Bossi <pgbossi a 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
>
>
Manno', intendevo che la "comprensibilita'" del costrutto non c'entra
niente:
http://bytes.com/topic/python/answers/851952-etymology-list-comprehension
Non e' questione di capire il costrutto meglio di un altro, ma di
comprendere nel senso di includere.


>
>
>>  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
>
>

Ma no, dai, suvvia... :D



>> Qual e' il modo migliore per implementare una flatmap in Python?
>
>
> Mmmm senza esempi pratici mi spiazzi ;)
>
>
>
Ok, provo con un'altra: qual e' il modo migliore in python di contare tutti
gli elementi di una lista che soddisfano un criterio?
2 esempi:

1) contare tutti gli elementi piu' grandi di 5
2) contare tutti gli elementi uguali al massimo

A me viene cosi':

>>> a = [2, -4, 27, 44, 13, 0]
>>> len(x for x in a if x > 5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type 'generator' has no len()
>>> len([x for x in a if x > 5])
3
>>> list_max = max(a)
>>> len([x for x in a if x == list_max])
1
>>> len([x for x in a if x == max(a)]) # anche cosi' insomma
1


Nota che questo problema lo puoi risolvere anche con una select/filter,
seguita da una reduce.

Sto ingranando?

Ciao,
Giuliano

-- 
Piergiuliano Bossi
Blog: http://thinkingbox.wordpress.com/
Twitter: http://twitter.com/thinkingbox (English)
Twitter: http://twitter.com/scatolapensante (Italiano)
Google+: https://plus.google.com/u/0/108187981162465525118
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130917/50ae5388/attachment.html>


Maggiori informazioni sulla lista Python