Listas y arreglos
Imaginá que la profesora de tu centro escolar te pide guardar las notas de 40 estudiantes en un programa. ¿Vas a crear 40 variables con nombres distintos? ¿Y si mañana llega un estudiante nuevo? En esta página vas a ver la herramienta que resuelve el problema: la lista.
Variable simple y lista
Una variable guarda un solo dato, como una cajita con una etiqueta: edad = 15. Es una estructura de datos simple.
Una lista (también llamada arreglo) guarda varios datos ordenados bajo un solo nombre. Es una estructura compleja: una fila de cajitas numeradas.
En pseudocódigo y en Python se escribe con corchetes:
edad = 15
notas = [7.5, 8.0, 6.5, 9.0]
Otros ejemplos: una variable guarda el nombre de un estudiante; una lista guarda los nombres de toda la sección. Existen estructuras complejas aún más elaboradas (matrices, árboles, grafos), pero aquí solo trabajamos con listas.
Explicá con tus palabras qué diferencia hay entre una variable simple y una lista. Dá un ejemplo de un dato que guardarías en una variable y otro que guardarías en una…
Explicá con tus palabras qué diferencia hay entre una variable simple y una lista. Dá un ejemplo de un dato que guardarías en una variable y otro que guardarías en una lista, por ejemplo en el contexto de un centro escolar.
Posiciones e índices
Cada elemento tiene una posición o índice. Lo importante: en programación se empieza a contar desde 0.
frutas = ["mango", "jocote", "marañón", "guineo", "sandía"]
| Posición | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| Elemento | mango | jocote | marañón | guineo | sandía |
-
frutas[0]vale"mango". -
frutas[3]vale"guineo". -
La lista tiene 5 elementos (la longitud), pero la última posición es la 4.
Por qué empieza en 0: el índice indica cuántos lugares hay que avanzar desde el inicio. El primer elemento está a 0 lugares.
Observá la lista frutas = ["mango", "jocote", "marañón", "guineo", "sandía"]. Indicá qué elemento está en la posición 0, cuál está en la posición 3 y cuántos elementos…
Observá la lista frutas = ["mango", "jocote", "marañón", "guineo", "sandía"]. Indicá qué elemento está en la posición 0, cuál está en la posición 3 y cuántos elementos tiene la lista.
Una lista tiene 6 elementos y sus posiciones empiezan en 0. Un estudiante afirma que el último elemento está en la posición 6. Decí si tiene razón, explicá el error y…
Una lista tiene 6 elementos y sus posiciones empiezan en 0. Un estudiante afirma que el último elemento está en la posición 6. Decí si tiene razón, explicá el error y señalá qué ocurriría si el programa intentara leer esa posición.
Agregar, eliminar y modificar
Una lista no es fija: se puede cambiar. Las tres operaciones básicas son:
| Operación | Qué hace | Ejemplo en pseudocódigo |
|---|---|---|
| Agregar | Añade un elemento (al final o en una posición) | agregar 10.0 a notas |
| Eliminar | Quita un elemento | eliminar "queso" de compras |
| Modificar | Cambia el valor de una posición | compras[0] = "maíz" |
En Python: notas.append(10.0), compras.remove("queso"), compras[0] = "maíz", y para insertar en una posición, lista.insert(1, "Diego").
Al agregar o eliminar, los demás elementos se corren y cambian sus posiciones. Modificar no cambia la cantidad de elementos.
Tenés la lista notas = [7.5, 8.0, 6.5, 9.0, 5.5]. Si ejecutás la operación «agregar 10.0 al final de la lista», escribí cómo queda la lista y decí cuántos elementos…
Tenés la lista notas = [7.5, 8.0, 6.5, 9.0, 5.5]. Si ejecutás la operación «agregar 10.0 al final de la lista», escribí cómo queda la lista y decí cuántos elementos tiene ahora.
Dada la lista compras = ["frijoles", "arroz", "queso", "tomate", "cebolla"], escribí cómo queda después de aplicar, en este orden: eliminar "queso", agregar "huevos" al…
Dada la lista compras = ["frijoles", "arroz", "queso", "tomate", "cebolla"], escribí cómo queda después de aplicar, en este orden: eliminar "queso", agregar "huevos" al final y modificar la primera posición para que valga "maíz". Mostrá la lista después de cada operación.
Gabriela administra la lista de asistencia asistencia = ["Ana", "Bryan", "Carlos", "Daniela", "Ernesto", "Fátima"]. Describí paso a paso una secuencia de operaciones…
Gabriela administra la lista de asistencia asistencia = ["Ana", "Bryan", "Carlos", "Daniela", "Ernesto", "Fátima"]. Describí paso a paso una secuencia de operaciones para: (a) quitar a Bryan porque se retiró, (b) insertar a «Diego» en la segunda posición y (c) corregir el nombre «Ana» por «Andrea». Escribí la lista resultante y cuántos elementos tiene al final.
Por qué usar listas
Josué guarda edades en n1, n2, n3, n4, n5. Con 5 está bien, pero con 40 personas:
-
hay que crear y recordar 40 nombres de variable;
-
para sumarlas hay que escribir 40 términos a mano;
-
si llega alguien nuevo, hay que cambiar el programa;
-
no se puede repetir una misma instrucción para todos.
Con una lista, edades guarda a todos. Se accede por posición (edades[7]), la lista crece o se achica y se puede recorrer con un bucle.
Josué guarda en cinco variables distintas (n1, n2, n3, n4, n5) las edades de sus compañeros de equipo. Explicá qué problemas tendría si el equipo creciera a 40 personas…
Josué guarda en cinco variables distintas (n1, n2, n3, n4, n5) las edades de sus compañeros de equipo. Explicá qué problemas tendría si el equipo creciera a 40 personas y cómo ayudaría usar una lista. Mencioná al menos dos ventajas.
Recorrer una lista
Recorrer una lista es visitar sus elementos uno por uno, de la posición 0 a la última. Se usa un bucle Para y un acumulador.
Ejemplo: sumar los precios [0.25, 0.50, 1.00].
precios = [0.25, 0.50, 1.00]
total = 0
Para i desde 0 hasta 2 hacer
total = total + precios[i]
Fin Para
Escribir total
Si se agrega un cuarto producto, solo cambia el límite del bucle (hasta la posición 3). Mejor aún: el límite se calcula como «cantidad de elementos − 1», y así el procedimiento no se modifica.
Una tienda de un centro escolar guarda en una lista los precios en dólares de sus productos: [0.25, 0.50, 1.00, 0.75, 1.25]. Diseñá, en lenguaje natural o en…
Una tienda de un centro escolar guarda en una lista los precios en dólares de sus productos: [0.25, 0.50, 1.00, 0.75, 1.25]. Diseñá, en lenguaje natural o en pseudocódigo, un procedimiento que recorra la lista y calcule el precio total si se compra una unidad de cada producto. Luego explicá por qué recorrer la lista es más práctico que sumar variables sueltas, y cómo cambiaría tu procedimiento si se agregara un sexto producto.
Listas en un entorno visual
En un entorno de programación visual (por ejemplo, uno tipo Scratch) la lista también existe, pero se maneja con bloques que se encajan en lugar de escribir texto. Cada bloque equivale a una línea de pseudocódigo.
| Bloque (entorno visual) | Pseudocódigo | Python |
|---|---|---|
crear lista notas |
notas = [7.5, 8.0] |
notas = [7.5, 8.0] |
agregar 10.0 a notas |
agregar 10.0 a notas |
notas.append(10.0) |
eliminar el elemento 2 de notas |
eliminar posición 1 |
notas.pop(1) |
reemplazar el elemento 1 de notas por 9.0 |
notas[0] = 9.0 |
notas[0] = 9.0 |
elemento 3 de notas |
notas[2] |
notas[2] |
longitud de notas |
cantidad de elementos | len(notas) |
Fijate en un detalle: muchos entornos visuales numeran los elementos desde 1, mientras que en Python y en pseudocódigo se cuenta desde 0. Antes de usar un bloque, comprobá desde dónde cuenta tu herramienta.
Dada la lista compras = ["frijoles", "arroz", "queso", "tomate", "cebolla"], escribí cómo queda después de aplicar, en este orden: eliminar "queso", agregar "huevos" al…
Dada la lista compras = ["frijoles", "arroz", "queso", "tomate", "cebolla"], escribí cómo queda después de aplicar, en este orden: eliminar "queso", agregar "huevos" al final y modificar la primera posición para que valga "maíz". Mostrá la lista después de cada operación.
Volvé al principio: las notas de 40 estudiantes caben en una sola lista llamada notas, y con un bucle se recorren todas sin importar cuántas lleguen.
Resumen
-
Una variable guarda un dato; una lista guarda varios datos ordenados bajo un solo nombre.
-
Las posiciones empiezan en 0: en una lista de $n$ elementos, la última es $n-1$.
-
Operaciones básicas: agregar, eliminar (los demás se corren) y modificar (no cambia la cantidad).
-
Leer una posición que no existe produce un error de índice fuera de rango.
-
Recorrer la lista con un bucle permite procesar todos sus datos, por ejemplo sumarlos con un acumulador.