En esta entrada aprenderemos sobre las Listas y las Tuplas en Python los cuales son tipos de datos estándar (Datos estructurados) que permiten almacenar valores en una secuencia ordenada.
Antes de Continuar te hago la invitación para que accedas al Curso Gratuito de Python en Español desde Cero.
Y que te suscríbas al canal si te interesa la programación, los microcontroladores o la teoría del control.
Listas en Python
Las listas en Python son variables que almacenan “arreglos” arrays, Objetos, donde internamente cada posición puede ser un tipo de datos distinto.
Es decir, una lista es un compendio de objetos arbitrarios, parecido a las matrices en muchos otros lenguajes de programación, pero más flexible. La creación de una lista se hace usando los corchetes [ ] y separando cada objeto por una coma ( , )
Las listas están ordenadas
Una lista no es unicamente un arreglo de varios objetos. Es una colección ordenada de objetos. Es decir que el primer elemento comenzará siempre con la dirección o índice cero (0), el segundo elemento con 1 y así sucesivamente.
Métodos de las listas
Python nos ofrece diversos métodos que nos van a facilitar la vida al momento de querer trabajar con las listas, la recopilación completa puedes verla aquí:
list.append( x )
Agrega un elemento al final de la lista. Equivalente a .a[len(a):] = [x]
list.extend( iterable )
Amplía la lista agregando todos los elementos del iterable. Equivalente a .a[len(a):] = iterable
list.insert( yo , x )
Inserta un elemento en una posición determinada dentro de la lista.
list.remove( x )
Elimine el primer elemento de la lista cuyo valor sea igual a x.
list.pop( [ i ] )
Quita un objeto en una posición dada dentro de la lista y lo retorna. Si no se especifica ningún índice, a.pop()
elimina y devuelve el último elemento de la lista.
list.clear( )
Borra todos los elementos de la lista.
list.index(x[, start[, end]])
Devuelve un índice de base cero en la lista del primer elemento cuyo valor es igual a x.
list.count(x)
Devuelve el número de veces que x aparece en la lista.
list.sort(*, key=None, reverse=False)
Ordene los elementos de la lista.
list.reverse()
Invierte los elementos de la lista.
list.copy()
Devuelve una copia superficial de la lista. Equivalente a a[:]
.
Las listas son mutables
La mayoría de los tipos de datos que hemos estudiado hasta ahora han sido tipos atómicos, lo que indica que son datos primitivos que no se pueden dividir más. Estos tipos de datos son inmutables, lo que significa que no se pueden cambiar una vez asignados. No tiene mucho sentido pensar en cambiar el valor de un número entero. Si desea un número entero diferente, simplemente hay que asignar un valor diferente.
Las cadenas de caracteres es un tipo compuesto que en Python también son inmutables. Es decir una vez creada, no podemos modificar su tamaño ni modificar un caracter.
La listas es el primer tipo de dato mutable que hemos estudiado en nuestro curso gratuito de Python. Una vez que se ha creado una lista, tenemos la libertad de poder agregar, eliminar, cambiar y mover a voluntad cada objeto dentro de la lista haciendo uso principalmente de los métodos expuestos anteriormente.
Modificar un valor de lista único
Un solo valor en una lista se puede reemplazar mediante indexación y asignación simple de adelante para atrás o de atás para adelante:
a = ['foo', 'bar', 'baz', 'qux', 'quux', 'corge'] a[2] = 10 a[-1] = 20
>>> a
['foo', 'bar', 10, 'qux', 'quux', 20]
Sin embargo, vamos a estudiar que estos objetos mutables pueden tener un efecto secundario llamado (side effects) los cuales son una fuente recurrente de errores y BUGs.
Esto ocurre cuando deseamos duplicar una lista y simplemente hacemos la asignación a otra lista: (Explicado en detalle en el video)
lista_1 = [1, 2, 3, 4] lista_2 = lista_1
Se puede verificar que el comando anterior, no hemos creado ninguna lista nueva, sino que por el contrario es como si tuviéramos dos identificadores para la misma lista. Podemos comprobar esto, analizando el espacio en la memoria tanto de lista_1 como de lista_2:
id(lista_1) id(lista_2)
El comando id en Python me muestra la dirección de memoria que ocupa un objeto en la computadora, y veremos que ambas listas apuntan a la misma dirección de memoria, que en otras palabras estamos llamando un objeto con dos nombres o identificadores diferentes.
Esto quiere decir que si se modifica el valor de lista_1 también se modificará el valor de lista_2 (pues son el mismo objeto) Esto puede generar problemas graves en nuestro código de programación pues varias etapas pueden verse modificadas sin que nosotros lo deseemos. Este tipo de error se conoce como el Side Effect.
Para evitar este error, siempre que deseemos duplicar o clonar una lista podemos usar la instrucción list o usar los comandos SLICES que tiene python:
lista_2 = list(lista_1) #Clona la lista 1 creando un objeto nuevo lista_2 = lista_1[::] #Clona la lista 1 creando un objeto nuevo usando SLICES
List Comprehension
Las list comprehension en python las usamos cuando deseamos aplicar una determinada operación a toda una secuencia o para aplicar una determinada condición en una lista.
Si tenemos la siguiente lista dentro de Python:
lista = list(range(10))
Se puede usar la list comprehension de python si por ejemplo se desea multiplicar por 10 cada elemento de la lista anterior. Si bien esto lo podemos hacer con un ciclo FOR con Python, la list comprehension me permite hacerlo en una única linea de código:
l2 = [i*10 for i in lista]
La list comprehension se crea colocando dos corchetes [] seguidamente se coloca el iterador junto con la operación (i*10) y finalmente se coloca el ciclo for para iterar todos los elementos de la lista (for i in lista)
De la misma manera, podemos adicionar a la list comprehension anterior un condicional en python al final, vamos a suponer que deseamos solo extraer de la lista los números pares:
lpar = [i for i in lista if i%2 == 0]
de esa forma, con una única linea de código consigo extraer los números pares de la lista gracias a la división por modulo 2.
Tuplas en Python
Son muy similares a las listas y comparten varias de sus funciones y métodos integrados, aunque su principal diferencia es que son inmutables.
Las tuplas son idénticas a las listas en todos los aspectos, excepto en las siguientes propiedades:
- Las tuplas se definen encerrando los elementos entre paréntesis (
()
) en lugar de corchetes ([]
). - Las tuplas son inmutables.
A continuación, se muestra un breve ejemplo que muestra una definición de tupla, indexación y división.
Todo lo aprendido con las listas (orden, contienen objetos arbitrarios, pueden indexarse y dividirse, pueden anidarse) también se aplica a las tuplas. Pero no se pueden modificar.
Características de una tupla:
- La ejecución del programa es más rápida cuando se manipula una tupla que con la lista equivalente.
- A veces, no desea modificar los datos por lo tanto el uso de una tupla en lugar de una lista protege contra modificaciones accidentales.
- Hay otro tipo de datos de Python que encontrará en breve llamado diccionario, que requiere como uno de sus componentes un valor que es de tipo inmutable. Se puede usar una tupla para este propósito, mientras que una lista no.
Eso es todo por la entrada del dia de hoy, espero les haya gustado y hayan aprendido algo nuevo. Si te ha servido el contenido de esta entrada, de los videos y los códigos de implementación y deseas apoyar mi trabajo invitandome a un café super barato, puedes hacerlo en el siguiente link:
👉 Invitar a Sergio a un Café ☕️
Que esten muy bien, nos vemos en la siguiente entrada.
Mi nombre es Sergio Andres Castaño Giraldo, y en este sitio web voy a compartir una de las cosas que mas me gusta en la vida y es sobre la Ingeniería de Control y Automatización. El sitio web estará en constante crecimiento, voy a ir publicando material sobre el asunto desde temas básicos hasta temas un poco más complejos. Suscríbete al sitio web, dale me gusta a la página en Facebook y únete al canal de youtube. Espero de corazón que la información que comparto en este sitio, te pueda ser de utilidad. Y nuevamente te doy las gracias y la bienvenida a control automático educación.