def inverte(dicio):
"""inverte um dicionario, i.e., as chaves passa a ser os valores e os
valores as chaves
"""
aux = {}
for key,value in dicio.items():
if not aux.has_key(value):
aux[value] = []
aux[value].append(key)
return aux
Como se pode ver, cá reaparece o velho padrão: varrer o dicionários pelos seus elementos, e ir adicionando por etapas os elementos relevantes a um acumulador (aux). Como podemos ter agora diferentes valores para uma mesma chave, esse facto resolve-se colocando no campo valor uma lista. O teste if serve para distinguir os casos em que não existe ainda nenhum valor, das situações em que já há algo.
Sem comentários:
Enviar um comentário