Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Após o curso tentei implementar o que aprendi porem estou com problemas

meu código está assim:

class Times:
    def __init__(self, nome, quant_jogadores, divisao, titulos):
        self.nome = nome
        self.quant_jogadores = quant_jogadores
        self.divisao = divisao
        self.titulos = titulos

    def __str__(self):
        return (f' Time:{self.nome} Titulos:{self.titulos} Divisão: {self.divisao}')

    def __lt__(self, outro):
        return self.titulos > outro.titulos

real_madri = Times("Real Madri", 22, "1ª divisão do Campeonato Europeu", 15)
barcelona = Times("Barcelona", 22, "1ª divisão do Campeonato Europeu", 22)
juventus = Times("Juventus", 22, "1ª divisão do Campeonato Italiano", 17)
bayer_de_muchen = Times("Bayern de Munchen", 22, "1ª divisão do Campeonato Alemão", 21)
manchester_united = Times("Manchester United", 22, "1ª diisão do Campeonato Inglês", 18)
milan = Times("Milan", 22, "1ª divisão do Campeonato Inglês", 25)
porto = Times("Porto", 22, "1ª divisão do Campeonato Português", 23)

times_europeus = [real_madri, barcelona, juventus, bayer_de_muchen, manchester_united, milan, porto]


def extrai_titulos(time):
    return time.titulos

sorted(times_europeus, key=extrai_titulos)

for time in times_europeus:
    print(sorted(time))

porem ao invés de devolver uma lista ordenada baseada no número de titulos, me devolve um error O error é esse: Traceback (most recent call last): File "C:\Users\jeanf\Caio\PycharmProjects\Campeonato\campeonato.py", line 33, in print(sorted(time)) TypeError: 'Times' object is not iterable

1 resposta
solução!

Boa noite Caio, o método sorted retorna uma nova lista. Então tem que fazer assim:

times_europeus = sorted(times_europeus, key=extrai_titulos)

E depois no print não precisa ordenar novamente.

print(time)