📱 Control remoto

Escaneá con tu celular para controlar la presentación.

QR Code
Python 3 · Semana 3 · Sesión 5 · UAJMS Yacuiba
[ Listas ]
Colecciones ordenadas y mutables
60–90 min 📍 UAJMS · Yacuiba 🐍 Python 3 # Sesión 5 de 6
1 / 22
Sesión 5Objetivos
💡
Idea clave: Una lista guarda muchos valores en una sola variable — como una fila de cajitas numeradas que empieza desde cero.
2 / 22
5.1¿Qué es una Lista?
numeros = [1, 2, 3, 4, 5]
nombres = ["Ana", "Luis", "María", "Carlos"]
mixta   = [42, "hola", True, 3.14]
vacia   = []
print(numeros)
print(len(numeros))
[1, 2, 3, 4, 5] 5
📦
Los corchetes [ ] definen la lista. Los elementos van separados con comas. Se pueden mezclar tipos distintos en una misma lista.
3 / 22
5.2
sección
Acceso por Índice
Los índices empiezan en 0. Los negativos cuentan desde el final hacia atrás.
4 / 22
5.2Índices Positivos y Negativos
índice +
0
"manzana"
-4
índice +
1
"banana"
-3
índice +
2
"cereza"
-2
índice +
3
"durazno"
-1
frutas = ["manzana", "banana", "cereza", "durazno"]
print(frutas[0])
print(frutas[2])
print(frutas[-1])
print(frutas[-2])
manzana cereza durazno cereza
⚠️
¡Empieza en 0! El primer elemento es lista[0], no lista[1]. El último es lista[-1].
5 / 22
5.2Slicing — Porciones de Lista
frutas = ["manzana", "banana", "cereza", "durazno", "uva"]

print(frutas[1:3])
print(frutas[:2])
print(frutas[2:])
print(frutas[::2])
['banana', 'cereza'] ['manzana', 'banana'] ['cereza', 'durazno', 'uva'] ['manzana', 'cereza', 'uva']
✂️
La sintaxis es lista[inicio : fin] — el elemento en la posición fin no se incluye. Si omitís inicio o fin, Python toma el extremo de la lista.
6 / 22
5.3
sección
Modificar Listas
append · insert · remove · pop · del — las listas son mutables
7 / 22
5.3Agregar Elementos
append() — al final
colores = ["rojo", "azul"]
colores.append("verde")
print(colores)
['rojo', 'azul', 'verde']
insert() — en posición
colores = ["rojo", "azul"]
colores.insert(1, "naranja")
print(colores)
['rojo', 'naranja', 'azul']
💡
append() siempre agrega al final. insert(pos, valor) empuja los elementos siguientes hacia la derecha.
8 / 22
5.3Eliminar Elementos
colores = ["rojo", "verde", "azul", "amarillo"]

colores.remove("verde")
print(colores)

ultimo = colores.pop()
print(ultimo, colores)

del colores[0]
print(colores)
['rojo', 'azul', 'amarillo'] amarillo ['rojo', 'azul'] ['azul']
⚠️
remove() elimina por valor — la primera coincidencia. pop() elimina por posición y devuelve el elemento. del elimina directamente por índice.
9 / 22
5.3Modificar un Elemento
notas = [85, 90, 55, 78]

notas[2] = 72
print(notas)

print("Total de notas:", len(notas))
[85, 90, 72, 78] Total de notas: 4
🔑
Las listas son mutables: podés cambiar cualquier elemento asignando directamente a su índice — igual que asignar una variable.
10 / 22
5.4
sección
Recorrer Listas con for
Iterar elemento por elemento — con y sin índice
11 / 22
5.4for Directo en Lista
notas = [85, 92, 78, 95, 88]

for nota in notas:
    print("Nota:", nota)

suma = 0
for nota in notas:
    suma += nota
print("Promedio:", round(suma / len(notas), 2))
Nota: 85 Nota: 92 Nota: 78 Nota: 95 Nota: 88 Promedio: 87.6
12 / 22
5.4enumerate() — Índice + Valor
notas = [85, 92, 78, 95, 88]

for i, nota in enumerate(notas):
    print(f"Estudiante {i+1}: {nota} puntos")
Estudiante 1: 85 puntos Estudiante 2: 92 puntos Estudiante 3: 78 puntos Estudiante 4: 95 puntos Estudiante 5: 88 puntos
🔑
enumerate(lista) entrega dos valores por iteración: el índice y el elemento. Muy útil para numerar resultados sin contadores manuales.
13 / 22
5.5
sección
Métodos Útiles
sort · reverse · count · index · max · min · sum
14 / 22
5.5sort, reverse, count, index
numeros = [3, 1, 4, 1, 5, 9, 2, 6]

numeros.sort()
print(numeros)

numeros.sort(reverse=True)
print(numeros)

print(numeros.count(1))
print(numeros.index(5))
[1, 1, 2, 3, 4, 5, 6, 9] [9, 6, 5, 4, 3, 2, 1, 1] 2 2
sort() modifica la lista original. Para obtener una copia ordenada sin tocar la original, usá sorted(lista).
15 / 22
5.5max(), min(), sum()
notas = [85, 92, 78, 95, 61]

print("Más alta:",  max(notas))
print("Más baja:",   min(notas))
print("Suma total:", sum(notas))
print("Promedio:",   sum(notas) / len(notas))
Más alta: 95 Más baja: 61 Suma total: 411 Promedio: 82.2
💡
max(), min() y sum() son funciones integradas de Python — no necesitan punto. Funcionan con cualquier lista numérica.
16 / 22
5.5Referencia Rápida
método / funciónqué hacedevuelve
append(x)Agrega x al final de la lista
insert(i, x)Inserta x en la posición i
remove(x)Elimina la primera ocurrencia de x
pop()Elimina el último y lo devuelveelemento
sort()Ordena la lista ascendente (in-place)
len(lista)Cantidad de elementosint
max / min / sumMayor / menor / suma totalvalor
17 / 22
Ejercicio 13Lista de Compras
📋 consigna
  1. Creá una lista vacía llamada compras.
  2. Usá while para pedir productos hasta escribir 'fin'.
  3. Agregá cada producto con append().
  4. Mostrá la lista completa y cuántos productos hay.
compras = []
producto = input("Producto (o 'fin'): ")
while producto != "fin":
    compras.append(producto)
    producto = input("Producto (o 'fin'): ")
print("Lista:", compras)
print("Total de productos:", len(compras))
18 / 22
Ejercicio 14Estadísticas de Notas
📋 consigna
  1. Ingresá notas de 5 estudiantes con un bucle for.
  2. Calculá: promedio, nota más alta y nota más baja.
  3. Contá cuántos aprobaron (nota ≥ 60).
notas = []
for i in range(1, 6):
    n = float(input(f"Nota estudiante {i}: "))
    notas.append(n)

print("Promedio:",   round(sum(notas) / len(notas), 2))
print("Más alta:",  max(notas))
print("Más baja:",   min(notas))
aprobados = sum(1 for n in notas if n >= 60)
print("Aprobados:", aprobados)
19 / 22
Ejercicio 15Análisis de Lista
nums = [7,2,9,4,6,1,8,3,5]

for n in nums:
    if n > 5:
        print(n, end=" ")

print("\nSuma:", sum(nums))

dobles = []
for n in nums:
    dobles.append(n * 2)
print(dobles)
7 9 6 8 5 Suma: 45 [14,4,18,8,12,2,16,6,10]
🎯
Combinás for + if para filtrar, y append para construir una nueva lista transformada.
20 / 22
PrácticaRegistro de Notas Completo
n     = int(input("¿Cuántos estudiantes? "))
notas = []
for i in range(1, n + 1):
    nota = float(input(f"Nota {i}: "))
    notas.append(nota)

notas.sort(reverse=True)
print("\n=== Resumen ===")
for i, nota in enumerate(notas):
    estado = "✅ Aprobado" if nota >= 60 else "❌ Reprobado"
    print(f"  {i+1}. {nota:.1f}  {estado}")
print(f"Promedio: {sum(notas)/len(notas):.2f}")
print(f"Aprobados: {sum(1 for n in notas if n>=60)}")
Este programa combina lista + for + sort + enumerate + condicional — todo lo visto en la sesión de hoy.
21 / 22
ResumenLo Aprendido Hoy
crear y acceder
lista = [1, 2, 3]
lista[0]
lista[-1]
lista[1:3]
modificar
lista.append(x)
lista.insert(i, x)
lista.remove(x)
lista.pop()
recorrer
for item in lista:
    print(item)

for i, item in enumerate(lista):
    print(i, item)
funciones útiles
len(lista)
max(lista) / min(lista)
sum(lista)
lista.sort()
Próxima sesión: Funciones — def
22 / 22