Las listas y tuplas – 100 días de Python #4

Las listas y tuplas – 100 días de Python #4

Cuarto día del reto de Python. Hoy verás bastantes cosas sobre las listas y las tuplas de Python.

¿Qué son las listas de Python?

Las listas son variables que pueden contener más de un valor a la vez y además, de diferentes tipos. Es decir, podemos mezclar, por ejemplo, strings y números.

Es importante decir que estos datos, deberían estar relacionados entre sí, para que tenga sentido.

Por ejemplo, una lista de países.

¿Cómo se crean las listas de Python?

Las listas se crean igual que una variable normal. Le damos un nombre, operador de asignación y unos corchetes "[]". Entre ellos, colocaremos separados por comas, cualquier tipo de dato, tantos como queramos.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

Imprimir una lista entera

Para mostrar la lista entera en la consola, lo haremos con su nombre, como una variable normal.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(lista_colores)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo']

Imprimir solo un valor concreto de una lista

Si no deseamos toda la lista, podemos acceder a una posición en concreto, mediante su número de posición. Esto funciona como los caracteres de los strings. Empezamos a contar desde el cero.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(lista_colores[0])

Resultado en la consola

rojo

Utilizar listas en strings formateados

Para utilizar estos datos de la lista en un string formateado, lo podemos hacer así:

lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(f"El segundo elemento de la lista es: {lista_colores[1]}")

Resultado en la consola

El segundo elemento de la lista es: azul

Acceder a los caracteres de string de un elemento en una lista

Puede que parezca una locura, pero podemos acceder a cada uno de los caracteres de los strings que hay en los elementos. Por ejemplo, obtengamos la letra "r" del string "amarillo". Solo tienes que indicar primero la posición del elemento en la lista y después, otra posición para el carácter de dicho elemento.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(lista_colores[3][3])

Resultado en la consola

r

Posiciones negativas en las listas

Podemos utilizar una sintaxis especial para acceder de manera inversa a las posiciones de la lista, es decir, de la última a la primera. En este caso, utilizaremos el símbolo "-" seguido del número de posición.

Por cierto, la primera posición contando de esta manera, será -1, después vendrá -2, -3...

lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(lista_colores[-1])
print(lista_colores[-4])

Resultado en la consola

amarillo
rojo

Reemplazar valores en la lista

Mediante el número de posición de una lista, podemos indicarle que se sustituya un valor por otro. Por ejemplo, tenemos "azul" en la posición 1, por lo tanto, si hago esto, se va a reemplazar "azul" por "naranja":

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores[1] = "naranja"

print(lista_colores)

Resultado en la consola

['rojo', 'naranja', 'verde', 'amarillo']

Añadir elementos a las listas

También se pueden añadir nuevos elementos a las listas sin necesidad de reemplazar ningún valor. Lo haremos con el método append(), la cual, añadirá el nuevo valor al final de la lista.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores.append("naranja")

print(lista_colores)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo', 'naranja']

Con el método insert() podremos especificar en qué posición se añade un elemento nuevo a la lista, sin reemplazar ninguno, solo desplaza el que ya esté en esa posición. Para que funciones, hay que especificar dos argumentos, primero el número de posición y luego el valor que queremos almacenar.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores.insert(2,"naranja")

print(lista_colores)

Resultado en la consola

['rojo', 'azul', 'naranja', 'verde', 'amarillo']

Eliminar elementos de las listas

Podemos eliminar todos los elementos de la lista y dejarla vacía con el método clear(). Esto no es útil todavía, más adelante le encontrarás utilidad.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores.clear()

print(lista_colores)

Resultado en la consola

[]

Por otro lado, con el método pop() se puede eliminar un solo elemento de la lista mediante su número de posición.

lista_colores = ["rojo", "azul", "verde","amarillo"]

lista_colores.pop(2)

print(lista_colores)

Resultado en la consola

['rojo', 'azul', 'amarillo']

Si lo que quieres es indicar el valor literal de un elemento para eliminarlo, lo puedes hacer con el método remove().

lista_colores = ["rojo", "azul", "verde","amarillo"]

lista_colores.remove("verde")

print(lista_colores)

Resultado en la consola

['rojo', 'azul', 'amarillo']

Duplicar listas

Tenemos el método copy() que nos permite copiar todo el contenido de una lista en otra:

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_nueva = lista_colores.copy()

print(lista_nueva)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo']

No obstante, puedes hacer esto mismo sin utilizar el método copy(), asignando una lista a otra.

lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_nueva = lista_colores

print(lista_nueva)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo']

Encontrar valores repetidos en listas

Podemos encontrar cuántas veces se repite un mismo elemento dentro de una lista con el método count(). Solo hay que pasarle como parámetro el valor literal que queremos buscar.

lista_colores = ["rojo", "azul", "verde", "rojo", "rojo","amarillo"]

print(lista_colores.count("rojo"))

Resultado en la consola

3

Encontrar la posición de un elemento literal en las listas

Otra cosa que se puede hacer, es buscar un elemento literalmente con el método index(). Este devolverá la posición en la lista de la primera ocurrencia.

lista_colores = ["rojo", "azul", "verde", "rojo", "rojo","amarillo"]

print(lista_colores.index("rojo"))

Resultado en la consola

0

Invertir posiciones en las listas

lista_colores = ["rojo", "azul", "verde","amarillo"]

lista_colores.reverse()

print(lista_colores)

Resultado en la consola

['amarillo', 'verde', 'azul', 'rojo']

Ordenar listas en orden alfabético

Se pueden ordenar alfabéticamente los valores de las listas con el método sort().

lista_colores = ["rojo", "azul", "verde","amarillo"]

lista_colores.sort()

print(lista_colores)

Resultado en la consola

['amarillo', 'azul', 'rojo', 'verde']

Esto se puede hacer en orden descendente con un argumento llamado "reverse". Este se puede dejar en "True" o en "False", si lo pones en "False", será lo mismo que no ponerlo.

lista_colores = ["rojo", "azul", "verde","amarillo"]

lista_colores.sort(reverse=True)

print(lista_colores)

Resultado en la consola

['verde', 'rojo', 'azul', 'amarillo']

Este método posee un argumento opcional más ("key") que no utilizaremos por el momento.

También se pueden ordenar valores numéricos de mayor a menor o de menor a mayor, dependiendo si utilizamos "reverse" o no.

numeros = [10, 50, 45, 1]

numeros.sort()

print(numeros)

Resultado en la consola

[1, 10, 45, 50]

Dividir los valores de los strings en caracteres como posiciones

Otro método para listas que tiene Python, es extend(). Con él, podemos hacer uniones de diferentes listas.

lista_colores_1 = ["rojo", "azul", "verde","amarillo"]

lista_colores_2 = ["naranja", "morado", "marrón"]

lista_colores_1.extend(lista_colores_2)

print(lista_colores_1)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo', 'naranja', 'morado', 'marrón']

Tengo que decir, que tiene una funcionalidad extra. Si le pasamos como argumento un string literal en lugar de una lista, nos lo incluye en la lista con un carácter por posición:

lista_colores_1 = ["rojo", "azul", "verde","amarillo"]

lista_colores_1.extend("naranja")

print(lista_colores_1)

Resultado en la consola

['rojo', 'azul', 'verde', 'amarillo', 'n', 'a', 'r', 'a', 'n', 'j', 'a']

¿Qué son las tuplas?

Las tuplas son elementos similares a las listas, con la gran diferencia en que las listas son mutables (pueden variar de valores) y las tuplas son inmutables (no pueden cambiar de valores). Una vez las declaramos y les damos un valor, queda durante toda la ejecución del programa.

La diferencia sintáctica es escribirlas con paréntesis en lugar de con corchetes.

colores = ("rojo", "azul", "verde", "amarillo")

print(colores)

Resultado en la consola

('rojo', 'azul', 'verde', 'amarillo')

Si intentas utilizar algún método de lista para modificar esta tupla, te va a dar un error.

Los elementos de la tupla se acceden igual que a una lista:

colores = ("rojo", "azul", "verde", "amarillo")

print(colores[1])

Resultado en la consola

azul

Saber la longitud de una lista o tupla

Podemos utilizar len() para que nos revele la cantidad de elementos que tiene una lista o una tupla.

colores_tupla = ("rojo", "azul", "verde","amarillo")
colores_lista = ["rojo", "azul", "verde","amarillo"]

print(len(colores_tupla))
print(len(colores_lista))

Resultado en la consola

4
4

Puedes ir a los 16 ejercicios resueltos desde este enlace.

9 comentarios en «0»

  1. Yo estoy estudiando, python para principiantes y antes de entrar en un curso avanzado, entre aqui y estoy siguiendo tu curso….Es increible!!! Explicas increiblemente bien y se entiende todo, haces muchos ejercicios y se entiende todo perfectamente. Es verdad que vi que el reto de los 100 dias se quedo en 14 o por ay no? es increible de verdad. Eres un grande. Muchisimas gracias

  2. Muchas gracias por el curso, siempre me ha interesado esto de la programación. Ahora que estoy jubilado
    me quitare esta espinita y de paso ejercitare la mente.
    Un cordial saludo!!

  3. Estoy en el día 4 aunque llevo 2 días jajaja, muchas gracias ahora que ando de vacaciones por fin se me hace aprender este leguaje que tanto quería, espero que continúes el curso master. ahora un seguidor fiel a tu canal.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior Soluciones de ejercicios – 100 días de Python #3
curso de Python Entrada siguiente Ejercicios con listas Python – 100 días de Python #4