De vegades volem generar una nova llista a partir d'una llista existent. Per exemple, si disposem d'una llista de números i volem obtenir una llista amb els números de la primera multiplicats per dos, però incloent només aquells números de la primera que siguin més grans que dos. En aquestes situacions funciona molt bé la següent funcionalitat de selecció dins les llistes.
Example 15.1. Ús de la selecció dins les llistes
#!/usr/bin/python # Filename: list_comprehension.py listone = [2, 3, 4] listtwo = [2*i for i in listone if i > 2] print listtwo
El programa genera una nova llista a partir de l'especificació
del càlcul a realitzar (2*i
) sobre els
elements de la primera llista que satisfan una certa condició
(if i > 2
).
La llista original no és modificada.
Sovint aquesta funcionalitat la realitzem amb bucles, però
aquest mecanisme ens ofereix una forma més compacta, precisa
i explícita de realitzar-ho.