[Python] l'amore per il pitone

Piergiuliano Bossi pgbossi a gmail.com
Mar 17 Set 2013 23:19:39 CEST


2013/9/17 Lorenzo Sutton <lorenzofsutton a gmail.com>

>
> Domanda, forse naive. A parte la soddisfazione/divertimento di costruire
> dei one-liner qual è il vero vantaggio di tale super-sinteticità? perché
> non scrivere il codice "per esteso"? Esempio:
>
> >>> number_list = [2, -4, 27, 44, 13, 0]
> >>> up_limit = 5
> >>> counter = 0
> >>> for i in number_list:
> ...     if i > up_limit:
> ...         counter += 1
> ...
> >>> counter
> 3
>
> Inserito in un contesto più complesso, così non un po' più chiaro?
>
>
:D

N risposte, tutte vere dal mio punto di vista, alcune estremamente
soggettive:
1) 1000 anni di lavoro in Java ti portano a idolatrare la sinteticita' e
detestare la verbosita'
2) meno codice scrivo e meno bugs ho
3) meno codice scrivo e piu' devo alzare il livello di astrazione e piu'
alzo anche il livello di riuso
4) non so perche', ma io veramente capisco piu' facilmente e piu'
velocemente il seguente (in Scala) rispetto a quello che hai scritto tu:
    a.count(_ > 5)
Non escludo di scrivermi una count che prende una collezione e un predicato
e scrivere (in Python)
    count(lambda x: x > 5, a)
Oppure rassegnarmi con:
    len([x for x in a if x > 5])

Domanda di riserva: non c'e' una len() che funziona direttamente sul
generatore e non richieda di costruire una lista? Trovo il seguente
abbastanza orrido:
    sum(1 for x in generator)

Vedi http://stackoverflow.com/questions/7460836/how-to-lengenerator

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/23be533b/attachment.html>


Maggiori informazioni sulla lista Python