Ordem Lista

Quando eu tenho listas dentro de listas, como eu faço para que a lista fique em ordem crescente com base em um elemento na lista dentro da lista? Por exemplo, se houvesse uma lista assim:
[[1,‘Pato’],[10,‘Cachorro’],[4,‘Coelho’],[6,‘Pingium’]]
Como eu poderia transformar essa lista em:
[[1,‘Pato’],[4,‘Coelho’],[6,‘Pinguim’],[10,‘Cachorro’]]

No seu exemplo, por coincidência, como você quer ordernar pelo primeiro elemento das listas, se chamar a função sorted já funciona:

lista = [[1,'Pato'],[10,'Cachorro'],[4,'Coelho'],[6,'Pingium']]
lista_ordernada = sorted(lista)

Se você quiser ordenar pelo segundo elemento, que é o animal no caso, aí precisaria passar uma função como key na função sorted. Essa função pode ser, por exemplo, pra selecionar o segundo elemento de uma lista:

lista = [[1,'Pato'],[10,'Cachorro'],[4,'Coelho'],[6,'Pingium']]
segundo_elemento = lambda lista: lista[1]
lista_ordernada = sorted(lista, key=segundo_elemento)
1 curtida