Sesión 8: Listas, cadenas y procesamiento de colecciones¶
Objetivo¶
Procesar conjuntos de datos usando listas y cadenas en problemas de recorrido y análisis simple.
Producto de la sesión¶
Elabora un programa que recorra colecciones, cuente elementos y transforme información textual mostrando resultados claros.
Resultado esperado¶
Construye un programa que use listas y cadenas para recorrer, contar, filtrar o transformar datos, organizando la solución en entrada, proceso y salida.
Alcance de la sesión¶
- Uso de listas y cadenas para representar colecciones de datos.
- Recorrido de colecciones, conteos y transformación básica de texto.
- Aplicación en ejercicios guiados y práctica autónoma.
- Verificación de resultados con casos de prueba.
Base conceptual de la sesión¶
- listas
- cadenas
- recorrido de colecciones
- conteos
- transformación básica de texto
1. Listas
Concepto Almacenan varios valores en una misma estructura y permiten recorrerlos o modificarlos.
Elementos o clasificación Listas de números, textos o estructuras compuestas.
Criterio de uso Se usan cuando varios datos del mismo problema deben almacenarse juntos, conservar su orden o procesarse mediante recorridos.
Ejemplo de aplicación
nombres = ["Ana", "Luis", "Elena"]
Para construir una lista nueva durante un recorrido se usa append(): resultado.append(valor) agrega valor al final de resultado.
2. Cadenas
Concepto Representan texto y pueden analizarse carácter por carácter o como una unidad.
Elementos o clasificación Texto completo, caracteres individuales y fragmentos.
Criterio de uso Se tratan como datos textuales y también como colecciones de caracteres, por eso permiten búsqueda, conteo, transformación y validación.
Ejemplo de aplicación
palabra.upper()
3. Recorrido De Colecciones
Concepto Implica visitar cada elemento de una estructura para procesarlo.
Elementos o clasificación Recorrido total, búsqueda parcial y filtrado por condición.
Criterio de uso Debe quedar claro qué se hace con cada elemento: mostrarlo, contarlo, transformarlo, compararlo o seleccionarlo.
Ejemplo de aplicación
for palabra in palabras:
print(palabra)
4. Conteos
Concepto Permiten medir cuántos elementos cumplen una condición.
Elementos o clasificación Conteo general y conteo condicionado.
Criterio de uso Requieren una regla de conteo precisa y una variable que aumente solo cuando el elemento cumple la condición.
Ejemplo de aplicación Contar cuántas palabras tienen más de cinco letras.
5. Transformación Básica De Texto
Concepto Modifica cadenas para adaptarlas a una necesidad del problema.
Elementos o clasificación Conversión de mayúsculas, minúsculas, limpieza y concatenación.
Criterio de uso Antes de comparar texto conviene normalizarlo, por ejemplo usando minúsculas, mayúsculas o eliminación de espacios innecesarios.
Ejemplo de aplicación Crear una nueva lista con cada palabra en mayúsculas.
Síntesis de la sesión Para resolver ejercicios, no basta con escribir instrucciones en Python. Es necesario reconocer los datos, nombrarlos correctamente, elegir operaciones o estructuras de control apropiadas y comprobar el resultado con casos de prueba.
| Aspecto | Pregunta guía |
|---|---|
| Entrada | ¿Qué datos necesita recibir el programa? |
| Proceso | ¿Qué cálculos, decisiones o repeticiones transforman los datos? |
| Salida | ¿Qué resultado debe mostrarse y con qué formato? |
| Prueba | ¿Con qué casos se demuestra que la solución funciona? |
Actividad práctica¶
La sesión se desarrolla con exploración inicial, ejercicios guiados, ejercicios de aplicación y una tarea tipo competencia.
Arquitectura¶
Entrada -> Proceso -> Salida
- Entrada: datos o colecciones que se leerán o procesarán.
- Proceso: recorrido, conteo, filtrado o transformación de los elementos de la colección.
- Salida: resultados obtenidos después de procesar la lista o cadena.
Mini laboratorio¶
Recorre una lista y una cadena para observar cómo se procesan colecciones elemento por elemento. También practica append() para guardar resultados en una lista nueva.
palabras = ['sol', 'luna', 'mar']
palabras_mayusculas = []
for palabra in palabras:
palabras_mayusculas.append(palabra.upper())
print(palabra.upper(), len(palabra))
print('Nueva lista:', palabras_mayusculas)
Ejercicio 1: Nombres que empiezan con vocal¶
Analizaremos una lista de nombres para contar cuántos empiezan con una vocal.
Resolución guiada
- Comprender: explica con una oración completa cuál es el resultado que debe obtener el programa.
- Entradas: enumera cada dato de entrada e indica su tipo de dato esperado.
- Procesos:
- describe la operación, condición, recorrido o función principal que usarás para resolver el problema
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: especifica la salida esperada y el formato con que se debe mostrar.
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado esperado se cumpla
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué sucede con una entrada vacía, inválida o fuera de rango
- Código:
nombres = ['Ana', 'Luis', 'Elena', 'Oscar', 'Marta']
vocales = 'aeiou'
contador = 0
for nombre in nombres:
if nombre[0].lower() in vocales:
contador += 1
print('Nombres que empiezan con vocal:', contador)
Ejercicio 2: Cursos largos en mayúsculas¶
Dada una lista de cursos, cuenta cuántos tienen más de 6 letras y construye una nueva lista con esos cursos en mayúscula.
Resolución guiada
- Comprender: el programa debe resolver este problema: Dada una lista de cursos, cuenta cuántos tienen más de 6 letras y construye una nueva lista con esos cursos en mayúscula
- Entradas: identifica la colección inicial
- Procesos:
- define la condición de conteo y usa
append()para guardar cada texto transformado - ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- caso normal: usa datos habituales para comprobar que el resultado principal sea correcto
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
cursos = ['calculo', 'fisica', 'programacion', 'redes']
cursos_largos = []
contador = 0
for curso in cursos:
if len(curso) > 6:
contador += 1
cursos_largos.append(curso.upper())
print('Cantidad de cursos con más de 6 letras:', contador)
print('Cursos en mayúscula:', cursos_largos)
Ejercicio 3: Conteo de vocales en una cadena¶
Recorre una cadena ingresada por teclado y cuenta cuántas vocales contiene.
Resolución guiada
- Comprender: el programa debe resolver este problema: Recorre una cadena ingresada por teclado y cuenta cuántas vocales contiene
- Entradas: define la entrada principal
- Procesos:
- establece la lista o cadena de vocales de referencia
- ordena las operaciones o decisiones antes de escribir el código
- prepara el resultado final que mostrarás al usuario
- Salidas: muestra el resultado solicitado por el enunciado con mensajes claros y ordenados.
- Pruebas:
- prueba con texto en mayúsculas y minúsculas
- caso límite: prueba el valor exacto donde cambia la regla, condición o cálculo principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
texto = input('Texto: ')
vocales = 'aeiou'
contador = 0
for letra in texto.lower():
if letra in vocales:
contador += 1
print('Vocales:', contador)
Ejercicio 4: Registro de palabras con append¶
Registra palabras hasta escribir fin. Guarda cada palabra en una lista y luego muestra cuántas palabras se registraron.
Resolución guiada
- Comprender: el programa debe recibir varias palabras y detenerse con una palabra clave.
- Entradas: palabras ingresadas una por una hasta escribir
fin. - Procesos:
- crea una lista vacía para guardar las palabras
- usa
whilepara repetir mientras la palabra no seafin - usa
append()para agregar cada palabra válida a la lista
- Salidas: muestra la lista completa y la cantidad de palabras registradas.
- Pruebas: prueba con varias palabras, con
final inicio y con palabras en mayúsculas. - Código:
palabras = []
palabra = input('Palabra (fin para terminar): ')
while palabra.lower() != 'fin':
palabras.append(palabra)
palabra = input('Palabra (fin para terminar): ')
print('Palabras registradas:', palabras)
print('Cantidad:', len(palabras))
Ejercicio 5: Palabra más larga y más corta¶
Dada una lista de palabras, encuentra la palabra más larga y la palabra más corta.
Resolución guiada
- Comprender: se debe recorrer una lista para comparar longitudes.
- Entradas: una lista de palabras.
- Procesos:
- toma la primera palabra como referencia inicial
- recorre la lista con
for - actualiza la palabra mayor o menor cuando encuentres una longitud más grande o más pequeña
- Salidas: muestra la palabra más larga y la palabra más corta.
- Pruebas: incluye palabras de distinta longitud y palabras con la misma longitud.
- Código:
palabras = ['sol', 'computadora', 'red', 'programacion', 'dato']
mayor = palabras[0]
menor = palabras[0]
for palabra in palabras:
if len(palabra) > len(mayor):
mayor = palabra
if len(palabra) < len(menor):
menor = palabra
print('Palabra más larga:', mayor)
print('Palabra más corta:', menor)
Ejercicio 6: Filtro de palabras en mayúsculas¶
Dada una lista de palabras, muestra cuántas tienen más de 5 letras y construye una nueva lista en mayúsculas.
Resolución guiada
- Comprender: redacta con tus palabras qué debe resolver la tarea.
- Entradas: define qué datos ingresan y el tipo que tendrán.
- Procesos:
- describe la estrategia, fórmula, condición, estructura o algoritmo que piensas aplicar
- ordena las acciones principales antes de escribir el código
- prepara cómo obtendrás el resultado final antes de mostrarlo
- Salidas: indica con claridad qué resultado debe mostrar o registrar la solución.
- Pruebas:
- caso normal: usa datos habituales para comprobar que la solución funcione
- caso límite: prueba el valor exacto donde cambia la regla principal
- caso excepcional: revisa qué ocurre con una entrada vacía, inválida o fuera de rango
- Código:
palabras = ['programacion', 'datos', 'bucle', 'sistema', 'python']
mayusculas = []
contador = 0
for palabra in palabras:
if len(palabra) > 5:
contador += 1
mayusculas.append(palabra.upper())
print('Cantidad con más de 5 letras:', contador)
print('Mayúsculas:', mayusculas)
Aprendizaje autónomo¶
Desarrolle el producto de la sesión resolviendo una o más de las siguientes actividades mediante un programa con listas o cadenas claramente identificables.
1 Cuenta consonantes o vocales en una palabra o frase ingresada por el usuario.
# Actividad 1
2 Procesa una lista de cursos y filtra los que cumplan cierta longitud o condición textual.
# Actividad 2
3 Convierte una colección de palabras a mayúsculas o minúsculas y muestra el resultado final en una nueva lista.
# Actividad 3
Evaluación del producto de la sesión¶
Lista de cotejo para revisar el producto elaborado por el estudiante:
- Identifica las entradas, la colección a procesar y la salida del problema.
- Recorre correctamente listas o cadenas según el problema planteado.
- Usa conteos, filtros o transformaciones de texto de manera adecuada.
- Presenta resultados claros, ordenados y correctos según lo solicitado.
- Verifica el programa con casos de prueba antes de entregarlo.
- Entrega la evidencia del trabajo realizado.