Skip to content

Instantly share code, notes, and snippets.

@fabiolnm
Created December 9, 2011 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fabiolnm/1452197 to your computer and use it in GitHub Desktop.
Save fabiolnm/1452197 to your computer and use it in GitHub Desktop.
notas = {
"Renato": { "Marguerita" : 4, "Quatro Queijos" : 5, "Escarola" : 4, "Portuguesa" : 5, "Frango+Catupiry" : 4, "Napolitana" : 3 },
"Marcelo": { "Marguerita" : 2, "Quatro Queijos" : 2, "Escarola" : 1, "Portuguesa" : 3, "Frango+Catupiry" : 5, "Napolitana" : 2 },
"Lenon": { "Marguerita" : 4, "Quatro Queijos" : 5, "Escarola" : 2, "Portuguesa" : 1, "Frango+Catupiry" : 1, "Napolitana" : 3 },
"Renata": { "Marguerita" : 4, "Quatro Queijos" : 5, "Escarola" : 1, "Portuguesa" : 1, "Frango+Catupiry" : 3, "Napolitana" : 4 },
"Washington": { "Marguerita" : 1, "Quatro Queijos" : 1, "Escarola" : 2, "Portuguesa" : 3, "Frango+Catupiry" : 4, "Napolitana" : 3 },
"Tino": { "Marguerita" : 1, "Quatro Queijos" : 5, "Escarola" : 1, "Portuguesa" : 4, "Frango+Catupiry" : 3, "Napolitana" : 2 },
"Luca": { "Marguerita" : 5, "Quatro Queijos" : 4, "Escarola" : 3, "Portuguesa" : 4, "Frango+Catupiry" : 3, "Napolitana" : 2 }
}
from math import sqrt
diferenca_afinidade = { }
notas_luca = notas["Luca"]
for pessoa, notas_pessoa in notas.iteritems():
diferenca_afinidade[pessoa] = 0
for sabor, nota in notas_pessoa.iteritems():
diff = nota - notas_luca[sabor]
diferenca_afinidade[pessoa] += diff*diff
diferenca_afinidade[pessoa] = sqrt(diferenca_afinidade[pessoa]) / len(notas_pessoa)
diferenca_afinidade
# maior afinidade de Luca é consigo mesmo :-)
min(diferenca_afinidade, key=diferenca_afinidade.get)
# tira Luca do dict
del diferenca_afinidade["Luca"]
min(diferenca_afinidade, key=diferenca_afinidade.get)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment