¿Qué son los arrays o listas en programación?
Qué son las listas y arrays, cómo funcionan los índices, cómo acceder, modificar, agregar y eliminar elementos y cómo recorrer colecciones mediante bucles.
Cuando un programa necesita trabajar con muchos valores relacionados, crear una variable diferente para cada elemento puede resultar incómodo. Las listas y otras estructuras similares permiten agrupar varios datos dentro de una misma colección y trabajar con ellos de manera organizada.
¿Qué son los arrays o listas?
Un array o una lista es una estructura que permite almacenar varios valores relacionados dentro de una colección.
Imagina que necesitas guardar cinco nombres. Podrías crear:
nombre1 = "Ana"
nombre2 = "Carlos"
nombre3 = "Laura"
nombre4 = "Pedro"
nombre5 = "Sofía"
Esto funciona, pero resulta poco práctico cuando la cantidad aumenta.
Utilizando una lista en Python podemos escribir:
nombres = [
"Ana",
"Carlos",
"Laura",
"Pedro",
"Sofía"
]
Ahora todos los nombres forman parte de una sola colección y podemos trabajar con ellos de manera mucho más sencilla.
¿Array y lista son exactamente lo mismo?
No necesariamente. La terminología depende del lenguaje de programación.
En muchos lenguajes, un array suele almacenar elementos siguiendo reglas más estrictas. Por ejemplo, puede tener un tamaño fijo o requerir que todos sus elementos sean del mismo tipo.
Las listas de Python son más flexibles:
- Pueden aumentar o disminuir de tamaño.
- Permiten agregar y eliminar elementos.
- Pueden almacenar diferentes tipos de datos.
Utilizaremos principalmente las listas de Python para explicar los conceptos fundamentales de colecciones e índices.
Cómo crear una lista en Python
Para crear una lista utilizamos corchetes
[].
tecnologias = [
"HTML",
"CSS",
"JavaScript",
"Python"
]
Cada elemento está separado mediante una coma.
Una lista puede estar vacía
productos = []
Después podemos agregar elementos cuando sea necesario.
Diferentes tipos de datos
Python permite algo como:
datos = [
"Ana",
25,
True,
1.65
]
Aunque es válido, normalmente conviene que una colección represente una idea clara y mantenga datos relacionados.
Índices y posiciones
Cada elemento de una lista ocupa una posición identificada mediante un índice.
En Python, el primer índice es 0.
lenguajes = [
"Python",
"JavaScript",
"Java"
]
Las posiciones son:
lenguajes[0]→ Pythonlenguajes[1]→ JavaScriptlenguajes[2]→ Java
Para acceder al primer elemento:
print(lenguajes[0])
El resultado será:
Python
En una lista con tres elementos, los índices válidos son
0, 1 y 2.
Índices negativos
Python permite acceder a elementos comenzando desde el final mediante índices negativos.
lenguajes = [
"Python",
"JavaScript",
"Java"
]
print(lenguajes[-1])
El resultado será:
Java
-1 representa el último elemento,
-2 el penúltimo y así sucesivamente.
Modificar elementos
Las listas de Python son mutables, lo que significa que podemos cambiar sus elementos después de crearlas.
frutas = [
"Manzana",
"Pera",
"Uva"
]
frutas[1] = "Mango"
print(frutas)
El resultado será:
["Manzana", "Mango", "Uva"]
La posición 1 anteriormente contenía "Pera" y ahora
contiene "Mango".
Agregar elementos
Existen diferentes formas de añadir elementos a una lista.
append()
append() agrega un elemento al final.
productos = [
"Teclado",
"Mouse"
]
productos.append("Monitor")
print(productos)
Resultado:
["Teclado", "Mouse", "Monitor"]
insert()
insert() permite elegir la posición.
productos.insert(
1,
"Audífonos"
)
El nuevo elemento se coloca en la posición 1 y los demás se desplazan.
Eliminar elementos
remove()
Elimina un elemento utilizando su valor.
productos = [
"Teclado",
"Mouse",
"Monitor"
]
productos.remove("Mouse")
print(productos)
pop()
pop() elimina un elemento utilizando su posición y
además devuelve el elemento eliminado.
productos = [
"Teclado",
"Mouse",
"Monitor"
]
eliminado = productos.pop(1)
print(eliminado)
print(productos)
eliminado contendrá "Mouse".
del
del productos[0]
Esto elimina directamente el elemento situado en la posición indicada.
Recorrer una lista con for
Una de las operaciones más habituales consiste en procesar todos los elementos de una lista.
tecnologias = [
"HTML",
"CSS",
"JavaScript",
"Python"
]
for tecnologia in tecnologias:
print(tecnologia)
En cada iteración, la variable tecnologia representa un
elemento diferente.
El resultado será:
HTML
CSS
JavaScript
Python
Este patrón resulta mucho más práctico que acceder manualmente a cada posición.
Recorrer utilizando índices
En algunos casos también necesitamos conocer la posición.
lenguajes = [
"Python",
"JavaScript",
"Java"
]
for indice in range(len(lenguajes)):
print(
indice,
lenguajes[indice]
)
Sin embargo, cuando necesitas posición y valor, Python ofrece una
opción más clara: enumerate().
for indice, lenguaje in enumerate(lenguajes):
print(indice, lenguaje)
Comprobar si un elemento existe
Podemos utilizar el operador in.
productos = [
"Teclado",
"Mouse",
"Monitor"
]
if "Mouse" in productos:
print("Producto encontrado")
También podemos comprobar que un elemento no exista:
if "Laptop" not in productos:
print("Producto no registrado")
Obtener la longitud de una lista
La función len() devuelve la cantidad de elementos.
productos = [
"Teclado",
"Mouse",
"Monitor"
]
cantidad = len(productos)
print(cantidad)
El resultado será:
3
Esto puede utilizarse para validar colecciones, calcular cantidades o controlar otros procesos.
Listas anidadas
Una lista puede contener otras listas.
usuarios = [
["Ana", 25],
["Carlos", 32],
["Laura", 28]
]
Cada elemento principal es otra lista.
Para obtener el nombre del primer usuario:
print(usuarios[0][0])
El resultado será:
Ana
Este tipo de estructura puede representar datos tabulares simples, aunque para aplicaciones más complejas pueden existir alternativas más claras, como diccionarios u objetos.
Ejemplo práctico: carrito de compra
Vamos a utilizar una lista para almacenar los precios de varios productos y calcular el total.
precios = [
15000,
8000,
25000,
5000
]
total = 0
for precio in precios:
total += precio
print(f"Productos: {len(precios)}")
print(f"Total: ₡{total}")
El programa utiliza:
- Una lista para almacenar precios.
- Un bucle para recorrerlos.
- Una variable acumuladora para calcular el total.
len()para contar los productos.
El resultado será:
Productos: 4
Total: ₡53000
Agregar un producto
precios.append(12000)
Ahora la lista tendrá cinco elementos.
Errores comunes al trabajar con listas
Intentar acceder a un índice inexistente
nombres = [
"Ana",
"Carlos"
]
print(nombres[2])
La lista solamente tiene los índices 0 y 1. Intentar acceder al 2 provoca un error.
Olvidar que el primer índice es cero
Si quieres acceder al primer elemento debes utilizar
lista[0], no lista[1].
Eliminar un valor que no existe
productos.remove("Laptop")
Si "Laptop" no está en la lista,
remove() puede generar un error.
Podemos comprobar primero:
if "Laptop" in productos:
productos.remove("Laptop")
Modificar una lista mientras la recorres
Agregar o eliminar elementos mientras un bucle recorre la misma lista puede producir resultados difíciles de anticipar.
Conviene analizar bien la operación o trabajar con una copia cuando corresponda.
Utilizar una lista cuando otra estructura sería más clara
Una lista es ideal para colecciones ordenadas, pero si necesitas relacionar claves con valores, un diccionario puede ser más apropiado.
Compruébalo tú mismo
Crea una lista llamada notas con cinco calificaciones.
Después:
- Muestra la primera nota.
- Muestra la última nota.
- Agrega una nota nueva.
- Calcula la suma de todas las notas.
- Calcula el promedio.
Intenta resolverlo antes de ver la solución.
Ver una posible solución
notas = [
80,
90,
75,
85,
95
]
print("Primera:", notas[0])
print("Última:", notas[-1])
notas.append(88)
suma = 0
for nota in notas:
suma += nota
promedio = suma / len(notas)
print("Suma:", suma)
print("Promedio:", promedio)
El bucle recorre todas las notas y acumula sus valores. Después dividimos la suma entre la cantidad de elementos.
Recorre la lista y muestra únicamente las notas iguales o superiores a 80.
Preguntas frecuentes
¿Array y lista son exactamente lo mismo?
Depende del lenguaje. En Python las listas son colecciones dinámicas, mientras que en otros lenguajes un array puede tener características diferentes, como tamaño fijo o elementos de un mismo tipo.
¿Por qué los índices comienzan en cero?
Muchos lenguajes utilizan índices basados en cero. Por eso el primer elemento ocupa la posición 0, el segundo la posición 1 y así sucesivamente.
¿Una lista de Python puede guardar diferentes tipos de datos?
Sí. Python lo permite, aunque normalmente conviene mantener elementos relacionados para que la estructura sea más clara y fácil de utilizar.
Operaciones habituales con colecciones
Además de guardar varios valores, las colecciones permiten recorrer elementos, buscar información, filtrar resultados, ordenar datos y transformar valores. Los nombres de estas operaciones cambian según el lenguaje, pero las ideas aparecen constantemente.
Una lista de productos puede filtrarse para mostrar únicamente los disponibles y luego ordenarse por precio. Separar estas operaciones ayuda a comprender cómo los datos se transforman paso a paso.
Índices y límites
Muchos lenguajes utilizan índices para acceder a posiciones y suelen comenzar desde cero. Intentar acceder a una posición inexistente puede producir un error o un resultado especial, dependiendo del lenguaje.
¿Array o estructura diferente?
No todas las colecciones sirven para lo mismo. Si necesitas búsquedas por clave, valores únicos u otras propiedades, el lenguaje puede ofrecer mapas, conjuntos u otras estructuras más adecuadas.
Conclusión
Las listas permiten almacenar varios valores relacionados dentro de una sola estructura y acceder a cada elemento mediante su posición.
Aprender a consultar índices, modificar elementos, agregar y eliminar datos y recorrer listas con bucles es fundamental para trabajar con colecciones de información.
Estos conceptos aparecen constantemente en programas reales: productos, usuarios, resultados, tareas, archivos, configuraciones y prácticamente cualquier situación donde necesites procesar varios elementos relacionados.
ByteNova
Proyecto educativo creado por Dylan Estrada. ByteNova publica contenido sobre programación, desarrollo web, inteligencia artificial y ciberseguridad con un enfoque claro para principiantes y revisión editorial continua.
Conoce más sobre ByteNova →