Usos prácticos de listas (2)
Hemos visto que el uso de bucles es un recurso muy interesante para añadir nuevos elementos a una lista; ahora veremos que también nos sirve para recorrer los elementos de la lista, mostrándolos uno a uno.
Teniendo en cuenta que una lista se comporta como un iterable, podemos emplear los bucles asociando el elemento contador con los valore-índices que incorporan las listas, facilitando la asociación de los contenidos de listas diferentes.
Veamos un ejemplo sencillo: supongamos una lista que contiene datos de identificación del alumnado y una segunda que contiene su categorización NEAE. Sería posible anonimizar esas calificaciones para un tratamiento de análisis de datos, siendo posible realizar consultas seguras disponiendo (quien tenga autorización para ello) del listado de datos de identificación.
La primera lista (que puede ser perfectamente también una tupla), está implementada en el script de manejo de los datos (incluyendo la consulta) y la segunda se crea desde un script y se maneja posteriormente desde otro (por ejemplo).
lstNombre=["Julián","Pedro","Matilde", "Ana"]
lstApellidos=["Alonso Pérez","González López","Ramírez De Luis","Ordóñez Núñez"]
lstNotas=[8,9,7,4]
for i in range(4):
print(lstNombre[i])
print(lstApellidos[i])
print(lstNotas[i])
Alonso Pérez
Pedro
González López
9
Matilde
Ramírez De Luis
7
Ana
Ordóñez Núñez
4
Pero en Python también podemos trabajar con el bucle for de forma sencilla directamente sobre una lista, lo que simplifica enormemente la formulación de estas estructuras. Un ejemplo sobre una de las listas anteriores. Para ello es suficiente con emplear la expresión for item in NombreLista
lstNombre=["Julián","Pedro","Matilde", "Ana"]
for item in lstNombre:
print(item,end=" ") # Devuelve sucesivamente Julián Pedro Matilde Ana
Una expresión similar a la anterior es la que usaremos para saber si un dato concreto forma parte de una lista. Sobre la lista anterior lstNombre=["Julián","Pedro","Matilde", "Ana"], para saber si el Carlos forma parte de la lista formularemos la siguiente instrucción: "Carlos " in lstNombre. Esta expresión devuelve un booleano (en este caso False, ya que Carlos no forma parte de lstNombre).
Podemos asociar esta búsqueda a un condicional y en función del resultado generar una bifurcación del algoritmo o, más sencillo, añadimos el elemento a la lista de nombres. Para ello primero deberemos asignar el resultado de "Carlos" in lstNombre a una variable:
vBoolA = "Carlos" in lstNombre
if vBoolA==False:
lstNombre=lstNombre+["Carlos"]
print(lstNombre) -> Devuelve ['Julián', 'Pedro', 'Matilde', 'Ana', 'Carlos']