Comprensión de listas y filtrado de listas en Python

Listas por Comprensión:

La comprensión de listas se caracteriza por tomar una lista y convertirla en otra.

Sintaxis:

[expresión for elemento in origen ]

>>>
>>> [exp * 2 for exp in xrange(1,8)]
[2, 4, 6, 8, 10, 12, 14]
>>>

Filtrado de Listas:

Sintaxis:

[expresión
for elemento in origen
if expresión de filtrado]

El filtrado de lista se realiza agregando otra sección a la comprensión de listas en la última parte:

Una expresión de filtrado puede ser cualquier expresión que se evalúe como verdadero o falso. Cualquier expresión de filtrado que resulte verdadera, será enviada para ser porcesada por la expresión. Todos los demás elementos se pasarán por alto.

>>>
>>> [exp * 2 for exp in xrange(1,8) if (exp % 2) == 0 ]
[4, 8, 12]
>>>
>>> l = ['a', 'b', 'c', 'd', 'e'] * 2
>>> l.append('f' * 3)
>>> [e for e in l if l.count(e) == 1]
['fff']
>>> l
['a', 'b', 'c', 'd', 'e', 'a', 'b', 'c', 'd', 'e', 'fff']
>>>

Como podemos ver, hemos operado la lista pero no la modificamos. Si lo que pensamos es modificar nuestra lista lo recomendable es hacer una copia de la lista a modificar.

>>>
>>> l = [e for e in l[:] if l.count(e) == 1]
>>> l
['fff']
>>>

Hay modos más eficientes de eliminar valores duplicados en una lista, pero el filtrado no es la solución.

By: Jolth

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s