Programación

Listas y diccionarios: tus primeras estructuras de datos

Listas para colecciones ordenadas y diccionarios para pares clave-valor: cuándo usar cada uno y cómo recorrerlos.

Una variable normal guarda un solo valor. Pero casi siempre tendrás que manejar muchos: una lista de la compra, los datos de una persona, los resultados de una búsqueda. Para eso están las estructuras de datos. Las dos más importantes son las listas y los diccionarios.

Cuándo usar una lista y cuándo un diccionario.Lista / array: Colección ordenada; Se accede por posición, desde 0; Ejemplo: ["manzana", "pera"]. Diccionario / objeto: Pares clave-valor; Se accede por nombre; Ejemplo: {"nombre": "Ana"}COMPARATIVALista / arrayColección ordenadaSe accede por posición, desde 0Ejemplo: ["manzana", "pera"]Diccionario / objetoPares clave-valorSe accede por nombreEjemplo: {"nombre": "Ana"}
Cuándo usar una lista y cuándo un diccionario.

Listas: una colección ordenada

Una lista guarda valores en orden, y cada uno tiene una posición (índice) que empieza en 0.

frutas = ["manzana", "pera", "uva"]
print(frutas[0])        # manzana
frutas.append("kiwi")   # añade al final
print(len(frutas))      # 4

En JavaScript se llaman arrays:

const frutas = ["manzana", "pera", "uva"];
console.log(frutas[0]);   // manzana
frutas.push("kiwi");
console.log(frutas.length); // 4

Para recorrerlas se usa un bucle:

for fruta in frutas:
    print(fruta)

Diccionarios: pares clave-valor

Cuando quieres buscar por un nombre y no por una posición, usas un diccionario. Cada clave apunta a un valor.

persona = {"nombre": "Ana", "edad": 30, "ciudad": "Sevilla"}
print(persona["nombre"])   # Ana
persona["edad"] = 31       # modificar
persona["email"] = "ana@ejemplo.com"  # añadir

En JavaScript se llaman objetos y se escriben casi igual:

const persona = { nombre: "Ana", edad: 30, ciudad: "Sevilla" };
console.log(persona.nombre);
persona.edad = 31;
El primer elemento de una lista es el 0.> frutas = ["manzana", "pera", "uva"] | > print(frutas[0]) | manzana | > print(len(frutas)) | 3EN LA TERMINALPython>frutas = ["manzana", "pera", "uva"]>print(frutas[0])manzana>print(len(frutas))3
El primer elemento de una lista es el 0.

Cuándo usar cada uno

Necesitas… Usa…
Una colección en orden (tareas, nombres, números) Lista / array
Acceder a un dato por su nombre (ficha de una persona) Diccionario / objeto
Muchos elementos de la misma forma Una lista de diccionarios

Es muy habitual combinarlos: una lista de personas, donde cada persona es un diccionario. Esa es, además, la forma de los datos JSON que devuelven las APIs: pega uno en el formateador de JSON para verlo claro, y lee qué es una API y JSON.

Errores habituales con colecciones.No: Pedir un índice que no existe. No: Pedir una clave que no existe. No: Confundir el índice 0 con el 1. Sí: Usa .get() en Python para claves que quizá faltenLISTA RÁPIDACuidado conPedir un índice que no existePedir una clave que no existeConfundir el índice 0 con el 1Usa .get() en Python para claves que quizá falten
Errores habituales con colecciones.

Errores típicos

  • Índice fuera de rango: pedir frutas[10] en una lista de 4 elementos da error. Recuerda que el último índice es len - 1.
  • Clave inexistente: persona["telefono"] falla si no existe. En Python, persona.get("telefono") devuelve None en lugar de fallar.
  • Confundir el índice 0 con el 1. El primer elemento es el 0.
  • Modificar mientras recorres una lista puede dar resultados inesperados; es más seguro crear una nueva.

Con estas estructuras y las funciones puedes escribir programas bastante útiles. Si te atascas, la guía de depuración te enseña a localizar fallos.