[Python] list comprehension

Marco Beri marcoberi a gmail.com
Ven 4 Dic 2020 10:59:26 CET


On Fri, 4 Dec 2020 at 10:45, Walter Valenti <waltervalenti a yahoo.it> wrote:

> Ciao,
> usa semplice domanda sulle list comprehension
> Faccio l'esempio con questo semplice codice:
>
> lista = [0,1,2,3,4,5,6,7,8,9,10,12,14,16]
> s = [n for n in lista if n%2 == 0][2]
> print(s)
>
> In questo caso l'interprete (nel mio caso 3.8.6) è "intelligente" da
> fermarsi all'elemento con indice due
> nella comprehension o verifica comunque la condizione su tutta la lista ?
>

Testa la condizione su tutta la lista.

Puoi verificarlo così:

>>> lista = [0,1,2,3,4,5,6,7,8,9,10,12,14,16]
>>> def pari(n):
...     print(n)
...     return n % 2 == 0
...
>>> s = [n for n in lista if pari(n)][2]
0
1
2
3
4
5
6
7
8
9
10
12
14
16
>>> print(s)
4


Ciao.
Marco.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20201204/a5b66778/attachment.html>


Maggiori informazioni sulla lista Python