[Python] l'amore per il pitone

Piergiuliano Bossi pgbossi a gmail.com
Mar 17 Set 2013 16:56:09 CEST


Esempio 2
Come faccio a verificare che tutti gli elementi di una collezione
verifichino lo stesso predicato? In Python devo prima applicare il
predicato a tutti gli elementi e poi usare la funzione all(). In linguaggi
come Ruby uso il metodo all? di enumerable direttamente (Scala e' analogo).

Python
>>> a = [2, 4, 8, 11]
>>> all(i % 2 == 0 for i in a)
False

Ruby (non testato):
a = [2, 4, 8, 11]
a.all? {|i| i % 2 == 0}

In generale, la mia impressione e' che Enumerable per Ruby e tutta la
libreria di collezioni "monstre" in Scala ti danno un sacco di modi per
manipolare le tue collezioni che in scala devi costruirti a mano, partendo
da all, len, map, reduce e i metodi di itertools. Nell'esempio di sopra,
invece Python mi obbliga prima a mappare tutti i valori di una collezione e
poi comporre la funzione desiderata. Ma se quella collezione e' grande e il
predicato computazionalmente complesso all() comunque ci itera sopra nella
sua interezza, giusto?

Dove sbaglio?

Ciao
Giuliano



2013/9/17 Marco Beri <marcoberi a gmail.com>

> 2013/9/17 Piergiuliano Bossi <pgbossi a gmail.com>
>
> quando devo manipolare una collezione penso a quanto piu' facile e' in
>> Ruby o Scala
>>
>
> Giuliano,
> magari puoi aggiungere due righe di codice per mostrare le differenze e la
> maggior facilità di gestire una collezione in Ruby o Scala?
>
> Se posso capire i conati per il self non riesco davvero a immaginare un
> modo molto più facile per gestire le collezioni di quello di Python.
>
> Ciao.
> Marco.
> P.S. Ovviamente salto tutta la fase dei saluti ecc. visto che ci
> frequentiamo da anni (in fondo sei tu il protagonista di
> http://beri.it/2009/12/22/la-neve/ che mi ha fatto andare su Radio24
> http://beri.it/2012/03/19/voi-siete-qui/).
>
> --
> http://beri.it/ - Un blog
> http://beri.it/i-miei-libri/ - Qualche libro
>
>
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>


-- 
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/3acac697/attachment-0001.html>


Maggiori informazioni sulla lista Python