[Python] l'amore per il pitone
Lorenzo Sutton
lorenzofsutton a gmail.com
Mar 17 Set 2013 22:56:41 CEST
On 17/09/13 19:32, Piergiuliano Bossi wrote:
[...]
> 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
>
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?
Ciao,
Lorenzo.
Maggiori informazioni sulla lista
Python