numeros = [16, 4, 9, 1, 3, 20, 8]

print(numeros)
numeros.sort()
print(numeros)
numeros.sort(reverse=True)
print(numeros)

numeros = [16, 4, 9, 1, 3, 20, 8]
ordenados = sorted(numeros, reverse=True)
print(ordenados)


misPaises = [
    "México",
    "Rumania",
    "Argentina",
    "España",
    "Uruguay",
    "Peru",
    "Ecuador",
    "Chile",
]

for i in reversed(sorted(misPaises, key=len)):
    print(i)


tuplas_coches = [
    ("Rojo", "4859-A", "A"),
    ("Azul", "2901-Z", "M"),
    ("Gris", "1892-B", "M"),
]
print(tuplas_coches)
# Ordenar los coches por matrícula
ordenados = sorted(tuplas_coches, key=lambda coche: coche[1])
print(ordenados)


class Coche:
    def __init__(self, color, matricula, cambio):
        self.color = color
        self.matricula = matricula
        self.cambio = cambio

    def __repr__(self):
        return repr((self.matricula, self.color, self.cambio))


coches = [
    Coche("Rojo", "4859-A", "A"),
    Coche("Azul", "2901-Z", "M"),
    Coche("Gris", "1892-B", "M"),
]
ordenados = sorted(coches, key=lambda coche: coche.matricula)
print(coches)
print(ordenados)


from operator import itemgetter, attrgetter

# Ordenar una lista de coches almacenados como tuplas
tuplas_coches = [
    ("Rojo", "4859-A", "A"),
    ("Azul", "2901-Z", "M"),
    ("Gris", "1892-B", "M"),
]
ordenados = sorted(tuplas_coches, key=itemgetter(1))
print(tuplas_coches)
print(ordenados)
ordenados = sorted(tuplas_coches, key=itemgetter(2, 1))
print(ordenados)


class Coche:
    def __init__(self, color, matricula, cambio):
        self.color = color
        self.matricula = matricula
        self.cambio = cambio

    def __repr__(self):
        return repr((self.matricula, self.color, self.cambio))


# Ordenar una lista de objetos de tipo Coche
coches = [
    Coche("Rojo", "4859-A", "A"),
    Coche("Azul", "2901-Z", "M"),
    Coche("Gris", "1892-B", "M"),
]
print(coches)
ordenados = sorted(coches, key=attrgetter("matricula"))
print(ordenados)
