Listas y tuplas. Automatizar contenido
Colecciones de datos
Aunque la forma más frecuente de crear colecciones de datos es introducirlos directamente mediante teclado o acceder a documentos en los que estos se encuentren disponibles, en ocasiones es necesario crear colecciones de datos numéricos más o menos amplias cuyos elementos mantienen entre sí una relación, lo que hace que sea posible automatizar su creación. Para estos casos es muy útil conocer procedimientos de creación automática de colecciones de datos. Y existen, tanto para listas y como para tuplas.
El primer procedimiento para crear listas (y tuplas) automáticamente es el que utiliza la función range(). Esta función precisa tres parámetros: el valor de inicio, el valor final y el incremento. Un ejemplo: range(2,12,2 nos permite crear una colección de datos que inicia en el número 2 y finaliza en el 10 (el 12 no está incluido), incrementándose el valor inicial de 2 en 2 (2 - 4 - 6...).
Utilizamos el constructor de listas y creamos automáticamente una que cumple esos criterios. Si la lista es pequeña podemos hacerlo manualmente, pero si contiene muchos elementos es más funcional usar la función range() que acabo de explicar:
-
lista_1 = list(range(2,100,2))crea una lista con todos los números pares comprendidos entre 2 y 100 (100 no incluido). tupla_1 = tuple(range(2,100,2))tiene el mismo efecto práctico, aunque en este caso se trata de una tupla, con todo lo que esto implica respecto a inmutabilidad.
Existen otros procedimientos que además de permitirnos crear colecciones de datos numéricos más complejas que también es necesario conocer si nos encontramos con script que utilicen estas expresiones. Me estoy refiriendo a la creación de listas o tuplas mediante operadores, bucles y condicionales. Veamos algunos ejemplos:
lista_3 = [x * 2 for x in lista_1]es una lista de valores numéricos que utilizalista_1(recuerda: números pares comprendidos entre 2 y 98) multiplicando por 2 cada uno de ellos. Mediantefor x in lista_1recorre esa lista.- La
tupla_2 =tuple([x * 2 for x in tupla_1])hace lo mismos pero creando una tupla y usando una tupla como base. Observa que ahora necesitamos usar el constructor y una combinación de ([]) - La
lista_4 = [x**2 for x in lista_1 if x > 8]hace los mismo quelista_2, pero ahora añadimos como condición para la creación de la colección de datos que el valor original delista_1sea superior a 8if x > 8) - Finalmente, en
lista_6 = [x * 3 for x in range(2,32,2) if x >10]utilizamos directamente la funciónrange()para crear automáticamente la colección de datos de basefor x in range(2,32,2)y mantenemos una condición: que los valores resultantes sean superiores a 10if x >10
Digo finalmente para no prolongar esta casuística más de lo necesario, porque aun caben otras combinaciones, incluyendo la de listas y tuplas y el uso de doble bucle en función de una doble variable lista_5 = [x + y for x in lista_1 for y in lista_2]
Documento. En este enlace te dejo acceso a un script con ejemplos, incluidos los explicados en esta entrada.
No hay comentarios:
Publicar un comentario
Comenta esta entrada