# Definir el algoritmo
# Los pasos que vamos a implementar para resolver el problema
# La 'receta'
# Divide y vencerás: un problema grande se compone de otros más pequeños
# Lo primero es pensar ¿Cömo voy a resolver este problema?
# Cread una función a la que le pasamos una lista de números y nos devuelva una lista
# con el menor y el mayor
# menorMayor([3,1,8,5])->[1,8]
# Cual es el mayor y cual es el menor
# Esta solución es más fácil
def menorMayor(lista):
ordenada = sorted(lista)
return [ordenada[0], ordenada[-1]]
# Esta solución es más eficiente, porque ordenar es algo muy costoso
def menorMayor2(lista):
menor = lista[0]
mayor = lista[0]
for numero in lista:
if numero < menor:
menor = numero
if numero > mayor:
mayor = numero
return [menor, mayor]
# Esto de aquí hay que evitarlo: No se modifican los parámetros que pasamos
def menorMayor3(lista):
lista.sort()
menor = lista.pop(0)
mayor = lista.pop(-1)
return [menor, mayor]
print(menorMayor([3, 1, 8, 5]))
print(menorMayor2([3, 1, 8, 5]))
milista = [2, 1, 6, 8, 33, 4, 12, 25]
print(menorMayor3(milista))
print(milista)
# Cread una función a la que le pasamos una lista de nombres y nos devuelve una lista
# con todos los nombres en minúsculas
# minusculas(["Ana","Pep","Iu"])->["ana","pep","iu"]
# Tener un sitio donde guardar el resultado
# recorrer la lista
# como pasar una cadena a minúsculas
def minusculas(lista):
resultado = []
for elemento in lista:
resultado.append(elemento.lower())
return resultado
print(minusculas(["Ana", "Pep", "Iu"]))
# Cread una función a la que le pasamos una lista de cadenas y nos devuelve una lista
# con las que tengan una longitud par
# longitudPar(["aa","bbb","cccc","ddddd"])->["aa","cccc"]
# Tener un sitio donde guardar el resultado
# recorrer la lista
# Si la longitud es par, lo añado a la lista
def longitudPar(lista):
resultado = []
for elemento in lista:
if len(elemento) % 2 == 0:
resultado.append(elemento)
return resultado
print(longitudPar(["aa", "bbb", "cccc", "ddddd"]))