Pregunta: ¿Como usar list comprehension? Respuesta: List comprehension es una utilidad para crear listas de manera consistente sin el uso de map, filter, reduce o lambda.
Ejemplo 1:
Código Python:
Ver originalvec = [2, 4, 6]
vec3 = [3*x for x in vec]
#>>> vec3 = [6, 12, 24]
Seria lo mismo que tener:
Código Python:
Ver originalvec = [2, 4, 6]
vec3 = []
for x in vec:
vec3.append(3*x)
#>>> vec3 = [6, 12, 24]
Usando map y lambda seria:
Código Python:
Ver originalvec = [2, 4, 6]
vec3 = map(lambda x: 3*x, vec)
#>>> vec3 = [6, 12, 24]
Ademas puedes usar la sentencia if:
Ejemplo 2:
Código Python:
Ver originalvec = [2, 4, 6, 7, 3, 1]
vec3 = [x for x in vec if x > 3]
#>>> vec3 = [4, 6, 7]
Código Python:
Ver originalvec = [2, 4, 6, 7, 3, 1]
vec3 = []
for x in vec:
if x > 3:
vec3.append(x)
#>>> vec3 = [4, 6, 7]
Código Python:
Ver originalvec = [2, 4, 6, 7, 3, 1]
filter(lambda x: x > 3, vec)
#>>> vec3 = [4, 6, 7]
También puedes anidar mas de un for:
Ejemplo 3:
Código Python:
Ver originalvec1 = [1, 2, 3]
vec2 = [4, 5, 6]
vec3 = [(x, y) for x in vec1 for y in vec2]
#>>> vec3 = [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
Código Python:
Ver originalvec1 = [1, 2, 3]
vec2 = [4, 5, 6]
vec3 = []
for x in vec1:
for y in vec2:
vec3.append((x, y))
#>>> vec3 = [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]