Inicializar listas en Python: de comprensiones a NumPy

1. Fundamentos de la inicialización de arreglos (listas) en Python

Las listas (arreglos) de Python son una estructura de datos flexible que puede almacenar elementos de distintos tipos de datos y constituyen una de las bases fundamentales de la programación en Python. En esta ocasión, explicaremos los métodos de inicialización de arreglos (listas) en Python.

¿Qué es una lista en Python?

Una lista es una estructura de datos para agrupar en uno solo elementos de diversos tipos de datos, como números y cadenas, y se utiliza como el «arreglo» de Python. Puede contener elementos de distintos tipos y, tras la inicialización, es posible añadir o eliminar elementos libremente.
example_list = [1, "Hello", True]
print(example_list)
# Salida: [1, "Hello", True]

Inicializar una lista vacía

Para crear una lista vacía, usa [] o list(). Este método es ideal cuando vas a agregar elementos más adelante o quieres reservar una variable.
empty_list1 = []
empty_list2 = list()
print(empty_list1)  # Salida: []
print(empty_list2)  # Salida: []

Inicializar una lista con un número específico de elementos

En Python, es sencillo crear una lista con un número específico de elementos. Por ejemplo, puedes crear una lista inicializada con cinco ceros de la siguiente manera.
initial_list = [0] * 5
print(initial_list)  
# Salida: [0, 0, 0, 0, 0]
Este método es útil para crear listas rellenadas con un valor constante.

Inicialización de listas usando la función list

La función list() es útil para generar listas a partir de otros tipos de datos. Por ejemplo, es posible convertir una cadena en una lista o convertir una tupla en una lista.
char_list = list("Python")
tuple_list = list((1, 2, 3))
print(char_list)  
# Salida: ['P', 'y', 't', 'h', 'o', 'n']
print(tuple_list)  
# Salida: [1, 2, 3]

2. Inicializar una lista mediante una comprensión de listas

Las comprensiones de listas son una sintaxis útil que permite escribir código de Python de forma concisa y eficiente. Son especialmente útiles para inicializar listas en función de condiciones.

Comprensión de listas básica

En el siguiente ejemplo, se inicializa mediante una comprensión de listas una lista cuyos elementos son los enteros del 0 al 9.
numbers = [i for i in range(10)]
print(numbers)  
# Salida: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Comprensión de listas condicional

También es posible crear listas añadiendo condiciones. Por ejemplo, una lista que contiene solo los números pares se escribe así.
even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers)  
# Salida: [0, 2, 4, 6, 8]
年収訴求

3. Inicialización de listas bidimensionales

Las listas de Python pueden representar arreglos multidimensionales al contener listas dentro de listas. Esto permite manejar estructuras de datos como tablas o matrices.

Cómo inicializar una lista bidimensional

A continuación se muestra un ejemplo de cómo inicializar una lista bidimensional de 3×3 usando una comprensión de listas. Con este método, cada lista existe de forma independiente, lo que previene cambios inesperados debidos a referencias.
matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)  
# Salida: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Nota: problema de referencias al inicializar listas bidimensionales

[[0] * 3] * 3 como en este ejemplo, hace que cada fila haga referencia al mismo objeto, por lo que un cambio en un lugar se reflejará en las otras filas. Usar una comprensión de listas hace que cada fila se genere como una lista independiente.

4. Operaciones con listas: añadir y concatenar elementos

Las listas de Python permiten añadir y eliminar elementos de forma dinámica después de su inicialización, así como concatenarlas con otras listas. Aquí explicamos las operaciones básicas.

Añadir elementos: método append

Con append() se puede añadir un elemento al final de la lista.
my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  
# Salida: [1, 2, 3, 4]

Inserción de elementos: método insert

insert() inserta un elemento en una posición específica de la lista. Al especificar el índice, se puede insertar en cualquier posición.
my_list = [1, 2, 3]
my_list.insert(1, 'new')
print(my_list)  
# Salida: [1, 'new', 2, 3]

Concatenación de listas: operador +

Para concatenar varias listas, se utiliza el operador +.
list1 = [1, 2, 3]
list2 = [4, 5]
combined_list = list1 + list2
print(combined_list)  
# Salida: [1, 2, 3, 4, 5]
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール

5. Otros métodos de inicialización: módulo array y NumPy

En Python existen el módulo array y la biblioteca NumPy, especializados en el cálculo numérico, y también es posible inicializar arreglos usando estructuras de datos distintas de las listas.

Inicialización con el módulo array

El módulo array de Python puede almacenar eficientemente arreglos de un mismo tipo de dato, por lo que se caracteriza por un bajo uso de memoria.
import array
int_array = array.array('i', [0] * 5)
print(int_array)  
# Salida: array('i', [0, 0, 0, 0, 0])

Inicialización de arreglos multidimensionales con NumPy

Con la biblioteca NumPy se pueden manejar de manera eficiente grandes arreglos multidimensionales. Se utiliza con frecuencia, en particular, en el cálculo científico y el análisis de datos。
import numpy as np
numpy_array = np.zeros((3, 3))
print(numpy_array)
# Salida:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]
Los arreglos de NumPy son muy eficientes computacionalmente y, en comparación con las listas estándar de Python, son más adecuados para el procesamiento de datos a gran escala.

6. Comparación de métodos de inicialización de arrays en Python

En este artículo, hemos explicado de forma exhaustiva los métodos de inicialización de listas y arrays en Python. Al comprender las ventajas de cada método de inicialización y elegir el más adecuado según el caso de uso, podrás escribir código más eficiente.
  • Creación de listas vacías: Inicialización sencilla con [] o list().
  • Comprensiones de listas: Crear fácilmente listas de elementos según condiciones.
  • Listas multidimensionales: Representarlas como listas de listas y tener en cuenta las consideraciones.
  • Adición y concatenación de elementos: Manipulación flexible con append(), insert() y el operador +.
  • array y NumPy: Estructuras de datos adecuadas para tipos numéricos y procesamiento de datos multidimensionales.
Si comprendes las características de cada método y biblioteca y las usas en el momento adecuado, podrás aprovechar al máximo la inicialización de listas en Python.