Estructuras de control - Estructuras de datos (II)
Índice:
Colecciones
Las colecciones son contenedores de datos como las variables pero, a diferencia de estos últimos, permiten almacenar múltiples datos en el mismo contenedor.
Hay tres colecciones básicas: Listas, Tuplas y Diccionarios.
Listas
Se dice que una lista es una colección de datos ordenadas. Esto quiere decir que cada elemento que la compone tiene un orden establecido. Otro dato importante es que las listas son mutables, lo que permite que su tamaño cambie a lo largo de la ejecución del programa.
|
|
Indicar una posición o rango
Se puede acceder a cada elemento de manera individual indicando su posición.
Recordar que siempre partimos de 0 para indicar posiciones.
Si queremos ver, por ejemplo, el primer elemento de la lista podemos hacer
|
|
También podemos usar números negativos, -1 siempre será el último elemento de la lista.
|
|
Otra opción es indicar un rango, por ejemplo, si queremos mostrar un valor desde la posición 2 hasta el final.
|
|
También podemos indicar un rango específico. Nótese que el último valor queda excluido.
|
|
Buscar un elemento
Podemos ver si un ítem existe dentro de la lista, para ello hacemos uso de la sentencia if y de la palabra reservada in.
|
|
Longitud de una lista
Otra función importante es len() que nos indica la longitud de la lista.
|
|
Agregar elementos
Para agregar un nuevo elemento hacemos uso de la función append().
Esta función siempre agregará el elemento indicado al final de la lista.
|
|
Si queremos agregar un elemento en una posición determinada hacemos uso de la función insert().
|
|
Para sobrescribir un elemento debemos indicar directamente la posición.
|
|
Eliminar elementos
Para borrar un elemento por su valor usamos la función remove().
|
|
Para borrar el último elemento, o bien, un elemento específico hacemos uso de pop().
|
|
Vaciar elementos
Para vaciar completamente una lista hacemos uso de la función clear()
|
|
Tuplas
Son similares a las listas, en el sentido de que permiten almacenar varios valores pero son inmutables, esto es que, su tamaño no cambia a lo largo de la ejecución del programa. Cualquier intento por agregar o borrar elementos llevará a un error. Se declaran así:
|
|
¿Por que usar Tuplas si las listas hacen lo mismo y tienen más funcionalidades?
Simplemente por rendimiento.
Las tuplas son objetos más “livianos”, justamente, porque carecen de las funcionalidades que ofrecen las listas, será tarea del programador discernir como y cuando usarlas.
Diccionarios
Los diccionarios son colecciones no ordenadas, esto quiere decir que no tienen un índice específico. Trabajan con un concepto conocido como clave:valor (key:value). Cada vez que agreguemos un valor, necesitamos agregar su clave.
|
|
Para acceder a los valores necesitamos llamar a la clave, en el siguiente ejemplo queremos ver el valor que contiene la clave “Modelo”.
|
|
Para chequear que una clave existe en el diccionario podemos hacer igual que con las listas
|
|
Para agregar ítems usamos una asignación directa de la siguiente manera:
|
|
Para eliminar un ítem usamos pop igual que en las listas, indicando simplemente la clave que queremos borrar.
|
|
También se pueden anidar, generando una estructura algo más compleja. Por ejemplo:
|
|
Bucle while
Un bucle while (mientras) es una estructura que ejecutará el código que se le indique mientras que se cumpla una condición determinada.
En la practica son muy útiles, por ejemplo, como contadores o bien para cargar datos.
En el siguiente ejemplo, creamos una variable “i” con el valor 1, luego usamos la estructura while que se ejecutará mientras “i” sea menor o igual a 5. Si esta condición (i<=5) es verdadera ejecuta el bloque de código que se le indico más adelante.
El bloque del while hace lo siguiente:
Muestra en pantalla el valor de “i” mediante la función print().
Suma uno a “i”. (i = i + 1)
|
|
break
Si queremos salir de un bucle while podemos usar break. En este ejemplo vamos a poner un bucle que cuente hasta 100 pero vamos a salir cuando i sea igual a 20.
|
|
continue
Si por algún motivo queremos saltar alguna vuelta podemos usar continue. En el siguiente ejemplo nos saltearemos la vuelta en la que “i” sea igual que 2 y salimos cuando “i” sea igual que 5.
|
|
Sentencia For
La sentencia for es útil cuando queremos recorrer una estructura de datos como una lista, un diccionario, etc.
Ejemplo:
|
|
Esta última parte se puede leer como “por cada x (que exista) en frutas imprimí x en pantalla”. Podemos pensarlo así: La primera vez que se ejecute, x va a valer “Manzana”. La segunda vez que se ejecute, x va a valer “Naranja”. La tercera vez que se ejecute, x va a valer “Pera”. Detiene la ejecución puesto que no hay más x.
Función Range()
Una opción, más que interesante para combinar con el uso del bucle for es la función range(). La misma permite especificar un rango numérico para generar la iteración. Supongamos que queremos crear una lista con los todos los números enteros comprendidos entre 0 y 100.
|
|
También la podemos usar para recorrer los elementos de dicha lista.
|
|
Si quisiéramos iterar la lista del principio hasta el final pero de dos en dos haríamos lo siguiente:
|
|
Recuerden que la función range() parte de 0 por defecto.
|
|