Expresión “para” de una línea de Python [duplicate]

2 minutos de lectura

Avatar de usuario de 0100110010101
0100110010101

No estoy seguro si necesito un lambda, o algo más. Pero aún así, necesito lo siguiente:

Yo tengo un array = [1,2,3,4,5]. Necesito poner esta matriz, por ejemplo, en otra matriz. Pero escríbalo todo en una línea.

for item in array:
    array2.append(item)

Sé que esto es completamente posible iterar a través de los elementos y hacerlo de una sola línea. Pero googlear y leer manuales no me ayudó mucho… si me puedes dar una pista o nombrar esto para que pueda encontrar lo que es, te lo agradecería mucho.

Actualizar: digamos esto: array2 = SOME FANCY EXPRESSION THAT IS GOING TO GET ALL THE DATA FROM THE FIRST ONE

(el ejemplo NO es real. Solo estoy tratando de iterar a través de diferentes fragmentos de datos, pero eso es lo mejor que se me ocurrió)

La palabra clave que estás buscando es lista de comprensiones:

>>> x = [1, 2, 3, 4, 5]
>>> y = [2*a for a in x if a % 2 == 1]
>>> print(y)
[2, 6, 10]

  • Todavía soy un principiante con Python, ¿cuál es el propósito de esto: “2*a”? @Adam Rosenfield

    – Ahmad

    16 de febrero a las 10:27

  • @Ahmad Un poco tarde, pero espero que pueda ayudar a alguien más. a se le asigna cada elemento en la lista x (porque el bucle for). Entonces el 2*a es simplemente tomar todos los elementos de la lista x y multiplicarlos por dos. Los valores duplicados estarán en y después de que haya terminado de iterar a través de toda la lista x

    – Hasnain Alí

    20 abr a las 16:59

for item in array: array2.append (item)

O, en este caso:

array2 += array

Si realmente solo necesita agregar los elementos de una matriz a otra, el operador ‘+’ ya está sobrecargado para hacerlo, por cierto:

a1 = [1,2,3,4,5]
a2 = [6,7,8,9]
a1 + a2
--> [1, 2, 3, 4, 5, 6, 7, 8, 9]

Avatar de usuario de Prabhu
prabhu

Incluso array2.extend(array1) trabajará.

Si estás tratando de Copiar la matriz:

array2 = array[:]

¿Ha sido útil esta solución?