Volver a la portadaCiencias de la Computación · 1.er año de bachillerato · Cambiar asignatura
Empezar gratis
1° bach · Ciencias de la Computación
Estructuras de datos · Organización y búsqueda de datos

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.

Una variable guarda un dato; una lista guarda varios datos en posiciones numeradas desde 0. Variable simple 15 edad Lista 7.5 8.0 6.5 9.0 0 1 2 3 notas

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.

Practica★☆☆Sin empezar
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.

Resolver

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.

Practica★☆☆Sin empezar
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.

Resolver
Practica★★☆Sin empezar
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.

Resolver

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.

Practica★☆☆Sin empezar
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.

Resolver
Practica★★☆Sin empezar
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.

Resolver
Practica★★★Sin empezar
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.

Resolver

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.

Practica★★☆Sin empezar
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.

Resolver

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.

Practica★★★Sin empezar
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.

Resolver

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.

Practica★★☆Sin empezar
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.

Resolver

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.

Ver todos los ejercicios de este apartado