Claro!
Bom, eu só me aproveitei de um recurso bem interessante de processamento de listas em python chamado "list comprehension".
Em Java / C++ ou até mesmo em python um modo de fazer a transformação do nosso dicionario em uma lista poderia ser simplesmente um loop (for por exemplo) onde pra cada chave eu adicionaria na nossa lista a tupla (chave, valor) - que é o modo como você usava os itens da sua lista no sort
.
O Python tem esse " sintaxe sugar" (elementos da sintaxe que auxiliam a gente)
para construir listas. Essa sintaxe abstrai por baixo dos panos a execução desse loop e é uma abordagem bem mais declarativa ( dizemos o nosso objetivo e ele se vira pra resolver pra gente). Se você reparar na escrita parece bastante com um humano falando o que ele gostaria que cada item da lista fosse ( infelizmente um humano falando em inglês e não português), mas você pode imaginar assim: Python, constrói uma lista pra mim onde cada item é uma tupla (chave, dict [chave])
, onde cada chave esta no dict.
O dicionário é uma estrutura de dados muito importante pra resolver diversos problemas e te recomendo, caso não tenha feito ainda, um curso de estrutura de dados que ele com certeza vai abordar esse tema.
O motivo de eu transformar o dicionario numa lista é que cada estrutura de dados é melhor pra resolver certos tipos de problema. Enquanto que os dicionários são ótimos pra armazenar chaves e valores, listas são excelentes pra lidar com ordenação.