A dica de hoje é pra ordenar um dicionário em Python. Precisei fazer isso esses dias e descobri que é possível ordenar o dicionário tanto pelas chaves quanto pelos valores facilmente. Vejam o código abaixo:
# Vc vai precisar da função 'itemgetter',
# da biblioteca 'operator'
from operator import itemgetter
# Crie seu dicionário
dic = {'um':1, 'dois':2, 'dez':10, 'onze':11, 'seis':6, 'zero':0}
# O método items() dos dicionários retorna o par (chave, valor)
# como tuplas de tamanho 2
print dic.items()
[('seis', 6), ('dez', 10), ('um', 1), ('zero', 0), ('dois', 2), ('onze', 11)]
# A função 'sorted' recebe os ítens do dicionário e ordena
# de acordo com a chave ('key') escolhida, que pode ser
# o primeiro (0) ou o segundo (1) elementos das tuplas
# Passando o '1' para o itemgetter, vc ordenará o
# dicionário pelos valores.
print sorted(dic.items(), key=itemgetter(1))
[('zero', 0), ('um', 1), ('dois', 2), ('seis', 6), ('dez', 10), ('onze', 11)]
# Passando o '0' para o itemgetter, vc ordenará o
# dicionário pelas chaves (ou seja, nesse caso, os
# nomes em ordem alfabética).
print sorted(dic.items(), key=itemgetter(0))
[('dez', 10), ('dois', 2), ('onze', 11), ('seis', 6), ('um', 1), ('zero', 0)]
# Caso você queria ordenar decrescentemente, basta
# passar o parâmetro 'reverse=True' para a função 'sorted'
print sorted(dic.items(), key=itemgetter(1), reverse=True)
[('onze', 11), ('dez', 10), ('seis', 6), ('dois', 2), ('um', 1), ('zero', 0)]