Saltar al contenido principal
ByteNova
Programación

¿Qué son los arrays o listas en programación?

Publicado por ByteNova · · Actualizado el

En este artículo aprenderás:

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.
Para este artículo

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] → Python
  • lenguajes[1] → JavaScript
  • lenguajes[2] → Java

Para acceder al primer elemento:

print(lenguajes[0])

El resultado será:

Python
Recuerda

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.

Reto adicional

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.

Ejemplo

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.

Artículo creado por

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 →