CON · Concepto 6 · Estructuras de datos

28.Listas y arreglos

Estructuras que guardan varios valores bajo un mismo nombre, en orden y con una posición cada uno: arreglos en PSeInt, listas en Python.

¿Qué es?

Un arreglo o lista guarda varios valores bajo un solo nombre, uno detrás de otro, cada uno en una posición (índice). En lugar de tener calificacion1, calificacion2, …, calificacion30, tienes una sola lista calificaciones.

Es como un casillero de gimnasio con números: un mueble (la lista), muchas puertas numeradas (las posiciones) y en cada una algo guardado (los valores).

Arreglo (PSeInt) Lista (Python)
Tamaño Fijo, se declara con Dimension Variable: crece y se reduce
Primer índice 1 (configuración por defecto) 0
Tipos Todos del mismo tipo Puede mezclar tipos (aunque no conviene)

Sintaxis (pseudocódigo / Python)

Guardar 5 calificaciones y calcular el promedio.

PSeInt

Algoritmo Calificaciones
	Definir cal, suma Como Real
	Definir i Como Entero
	Dimension cal[5]
	suma <- 0
	Para i <- 1 Hasta 5 Hacer
		Escribir "Calificación ", i, ":"
		Leer cal[i]
		suma <- suma + cal[i]
	FinPara
	Escribir "Promedio: ", suma / 5
	Escribir "La primera fue: ", cal[1]
FinAlgoritmo

Python

calificaciones = []
for i in range(1, 6):
    calificaciones.append(float(input(f"Calificación {i}: ")))

print("Promedio:", sum(calificaciones) / len(calificaciones))
print("La primera fue:", calificaciones[0])
print("La mayor fue:", max(calificaciones))

Operaciones con listas en Python

frutas = ["manzana", "plátano", "mango"]
frutas.append("uva")          # agregar al final
frutas.insert(0, "pera")      # insertar en una posición
frutas.remove("plátano")      # quitar por valor
ultima = frutas.pop()         # quitar y devolver la última
print(frutas)                 # ['pera', 'manzana', 'mango']
print(len(frutas))            # 3
print("mango" in frutas)      # True
print(frutas[1:])             # ['manzana', 'mango']
frutas.sort()                 # ordenar
print(frutas)                 # ['mango', 'manzana', 'pera']

Ejemplo guiado

Problema: de una lista de calificaciones de un grupo, obtener cuántos aprobaron, el promedio del grupo y las calificaciones por encima del promedio.

calificaciones = [8.5, 6.0, 9.2, 5.5, 7.8, 10.0, 4.9, 7.0]

aprobadas = [c for c in calificaciones if c >= 6]
promedio = sum(calificaciones) / len(calificaciones)
arriba = [c for c in calificaciones if c > promedio]

print("Alumnos:", len(calificaciones))
print("Aprobados:", len(aprobadas))
print("Promedio del grupo:", round(promedio, 2))
print("Arriba del promedio:", sorted(arriba, reverse=True))

Salida esperada:

Alumnos: 8
Aprobados: 6
Promedio del grupo: 7.36
Arriba del promedio: [10.0, 9.2, 8.5, 7.8]

La expresión [c for c in calificaciones if c >= 6] es una comprensión de listas: crea una lista nueva con los elementos que cumplen la condición.

Errores comunes

# ✗ Incorrecto
numeros = [10, 20, 30]
print(numeros[3])
IndexError: list index out of range
# ✗ Error lógico
a = [1, 2, 3]
b = a
b.append(4)
print(a)   # [1, 2, 3, 4]: es la misma lista

Buenas prácticas

  • Nombres en plural: alumnos, calificaciones; el elemento en singular: for alumno in alumnos.
  • Un solo tipo de dato por lista.
  • Usa las funciones incorporadas: len, sum, max, min, sorted.
  • Comprensiones de listas para filtrar o transformar, mientras sean fáciles de leer.
  • Para datos con nombre (nombre, edad, grupo) usa diccionarios u objetos, no listas paralelas.

Material descargable

Aún no hay material descargable para este tema. Pronto habrá cuadernillos, manuales o laboratorios.

Referencias

Antes conviene ver…

© solutions_ · Fundamentos de programación · 28 Listas y arreglos