Soluciones de ejercicios – 100 días de Python #4

Esta página contiene las soluciones para los ejercicios del cuarto día del curso.

  1. Creamos la lista con los valores integer:
lista_numeros = [10, 45, 55, 76]
  1. Las posiciones de lista van desde el 0, de forma que la posición 3 es la correspondiente al valor 76.
lista_numeros = [10, 45, 55, 76]

print(lista_numeros[3])
  1. Aquí solo tenías que incrustar en el string las dos posiciones de la lista.
lista_numeros = [10, 45, 55, 76]

print(f"El valor más pequeño en la lista es el {lista_numeros[0]}. El más grande, el {lista_numeros[3]}.")
  1. En este caso, falta el operador de asignación para la lista "=". Como detalle extra, están las comillas simples que envuelven al valor amarillo. En este caso, solo sería un warning de algo mal hecho, pero no sería un error. Debe quedar así:
lista_colores = ["rojo", "azul", "verde", "amarillo"]
  1. La llamada a la posición de lista, se hace con corchetes, no con paréntesis:
lista_colores = ["rojo", "azul" "verde", "amarillo"]

print(lista_colores[0])
  1. La posición -0 no existe. 0 no puede ser nunca un valor negativo. También, la posición -4 no existe en esta lista, solo hay 3 elementos. Por lo tanto, una posible solución, sería esta:
lista_colores = ["rojo", "azul", "verde"]

print(lista_colores[0])
print(lista_colores[-3])
  1. Para acceder a un carácter de un string, debemos añadir unos corchetes extra. Con el valor [1], accedemos al elemento "azul". Con el valor [2], al carácter de la posición 2 del string (u).
lista_colores = ["rojo", "azul", "verde", "amarillo"]

print(lista_colores[1][2])
  1. En este ejercicio, te podías complicar más o menos para resolverlo. Una de las formas difíciles y lentas, era contrar a ojo los elementos uno por uno hasta saber las posiciones de los dos últimos elementos. Si lo has hecho así, recuerda no hacerlo nunca más.

Otra solución posible era utilizar len() para contar el total de elementos y poder sacar así las dos últimas posiciones:

print(len(paises))

Resultado en la consola

205

Pues si nos da 205 elementos, teniendo en cuenta que se cuenta desde el 0, tenemos las dos últimas posiciones como 203 y 204.

print(paises[203])
print(paises[204])

No obstante, la solución más rápida para esto, es utilizar las posiciones negativas:

print(paises[-1])
print(paises[-2])
  1. Primero añado "gris" en la posición 0. "rosa" lo pongo al final y "naranja" en la posición 3.
lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores.insert(0,"gris")
lista_colores.append("rosa")
lista_colores.insert(3,"naranja")

print(lista_colores)
  1. Si no entiendes bien el porqué de esta solución, te recomiendo que la veas en el vídeo.
lista_colores = ["rojo", "azul", "verde", "amarillo"]

lista_colores.insert(0,"gris")
lista_colores.append("rosa")
lista_colores.insert(3,"naranja")

lista_colores.pop(1)
lista_colores.pop(3)
lista_colores.pop(3)

print(lista_colores)
  1. Para hacer esto sin método, sencillamente, se asigna la lista a otra.
lista_colores = ["rojo", "azul", "verde", "amarillo"]

colores_copia = lista_colores

También contamos con el método copy().

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

colores_copia = lista_colores.copy()
  1. La salida en la consola indica que hay 9 repeticiones del valor 10.
lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

print(lista_numeros.count(10))
  1. En la consola, indica que está en la posición 26.
print(paises.index("Brazil"))
  1. Podemos utilizar el método sort().
lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

lista_numeros.sort()

print(lista_numeros)

Aprovecho para enseñarte algo más, el método sorted() el cuál, a diferencia de sort(), hace solo el cambio en la línea donde lo ponemos, es decir, por ejemplo en un print():

lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

print(sorted(lista_numeros))

Si intentas esto con sort(), te va a dar un valor None sin más.

lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

print(lista_numeros.sort())

Resultado en la consola

None

Además, con sort(), si haces esto, sobreescribes igualmente la lista original y la nueva, se queda con un valor de None:

lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

lista_ordenada = lista_numeros.sort()

print(lista_numeros)
print(lista_ordenada)

Resultado en la consola

[10, 10, 10, 10, 10, 10, 10, 10, 10, 43, 45, 45, 46, 65, 67, 356]
None
  1. Para ordenar de mayor a menor, utilizaremos el atributo reverse=True.
lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

lista_numeros.sort(reverse=True)

print(lista_numeros)

Debes saber que también se puede añadir el atributo reverse al sorted():

lista_numeros = [10,45,356,10,10,10,46,67,45,10,10,43,10,65,10,10]

print(sorted(lista_numeros, reverse=True))
  1. Si has prestado atención al ejercicio número 8, ya tenías la solución a este ejercicio. Se trata de utilizar len() para que cuente el total de elementos que tiene una lista.
print(len(paises))

Nos da 205 de resultado. Recuerda que esto, es el total de elementos. Las posiciones quedarán de la 0 a la 204 (205 elementos en total).

Un comentario en «Soluciones de ejercicios – 100 días de Python #4»

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 Ejercicios con listas Python – 100 días de Python #4
curso de Python Entrada siguiente Los bucles for y while – 100 días de Python #5