Consejos

Cómo hacer una lista de listas en Python

Hoy veremos cómo crear listas de listas en Python. Hay varias maneras de hacer esto. Comencemos mirando algunos de estos métodos.

Para bucle y agregar () método.

El primer método es muy simple y claro, inicialmente creamos una lista vacía lst1, luego ejecute un ciclo y agregue la lista a lst1.

Si tuviéramos que insertar norte sublista, entonces necesitaremos ejecutar un ciclo norte tiempos usados Alcance () Característica. Entendamos este concepto con un ejemplo.

lst1 = []
for i in range(0, 5):
  lst1.append([])

print(lst1)

Salida

[[], [], [], [], []]

Aquí el ciclo se ejecuta cinco veces, en cada iteración agregamos una lista vacía a lst1, que nos permite crear una lista de listas, como puede ver en la salida.

entender la lista

Otra forma es usar una comprensión de lista, que nos brinda una forma más simple y concisa. Veamos un ejemplo.

lst  = [[] for i in range(0, 5)]
print(lst)

Salida

[[], [], [], [], []]

Comprender una lista siempre devuelve una lista cuyo contenido depende de la expresión en el ciclo for y la condición if (si existe).

En el ejemplo anterior, agregamos una sublista cada vez que se ejecuta el bucle, por lo que el resultado contiene una lista de listas.

biblioteca numpy

Otra forma de hacer una lista de tareas es moneda digitalEsta es una poderosa biblioteca informática científica.

Proporciona una variedad de métodos y herramientas para crear y trabajar con arreglos multidimensionales de manera efectiva.

nosotros podemos usar vacío () Métodos de la biblioteca NumPy. Necesitamos pasar una tupla que contenga el tamaño de fila y columna.

También necesita un tipo de datos. Por defecto, creará una matriz de tipo numpy.float64.

Además, devuelve ndarray (arreglo N-dimensional) con tamaño y tipo fijos.Para convertir esto en una lista usaremos lista () método.

Considere el siguiente código:

import numpy as np
np_array = np.empty((5, 0))
lst = np_array.tolist()
print(lst)
print(f"Type of np_array: {type(np_array)} and the type of lst: {type(lst)}")

Salida

[[], [], [], [], []]
Type of np_array: <class 'numpy.ndarray'> and the type of lst: <class 'list'>

nosotros podemos usar numpy.ndarray () método. Veamos.

import numpy as np
np_array = np.ndarray((5, 0))
lst = np_array.tolist()
print(lst)

[[], [], [], [], []]

mapa () función.

También podemos crear listas de reproducción utilizando las funciones integradas de Python mapa () Característica. mapa () Acepta dos argumentos: función e iterable.

Una generaciónt llama a la función dada para cada elemento del iterable y devuelve un iterador. Considere el siguiente ejemplo.

n=5
lst = [None]*n
lst = list(map(lambda x: [], lst))
print(lst)

Salida

[[], [], [], [], []]

Primero creamos una lista norte el artículo contiene No todo el mundoLuego le pasamos esta lista a map().

Utilice una función anónima para asignar cada elemento de la lista externa a una lista vacía. Finalmente, convertimos el iterador devuelto (objeto de mapa) en una lista, lo que lleva a una lista de listas.

qué no hacer

Podemos crear una lista unidimensional de la siguiente manera.

lst = [None]*n

aquí, primero habrá un tamaño nortey cada elemento tendrá valor No todo el mundoEn otras palabras, cada valor que ponemos entre corchetes se repite norte Segundo grado.

Entonces si ponemos [] Dentro, obtendremos una lista de listas, ¿verdad? Bueno, haces eso, pero cada elemento apunta al mismo objeto (el primero). En pocas palabras, obtenemos norte la misma sublista. Veamos.

n=5
lst = [[]]*n
print(lst)
#append an item to the last list
lst[n-1].append(3)
print(lst)

Salida

[[], [], [], [], []]
[[3], [3], [3], [3], [3]]

Piensa en otro código.

n=5
lst = []
new_list =  [lst for i in range(0, n)]
#append an item to the last list
new_list[n-1].append(3)
print(lst)
print(new_list)

El código anterior también crea cinco referencias a la variable primeroEntonces, nueva_lista[0], lista nueva[1], … lista nueva[n-1] las referencias apuntan a la misma dirección primero.

Salida

[3]
[[3], [3], [3], [3], [3]]

usar primero[:] reemplazar primero o use una lista de copia explícita Copiar () desde Copiar módulo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba