Preciso que ele primeiro organize os restaurantes pelas notas, mas caso exista alguma nota igual, o criterio de desempate seria a menor distancia, mas nao consigo colocar essa segunda condição do sort, ele sempre pega uma só.
def odistancia(ordenar):
return ordenar['Distancia']
def onota(ordenar):
return ordenar['Nota']
restaurantes = [
{'Restaurante': 'BK', 'Nota': 4.2, 'Distancia': 4.7, },
{'Restaurante': 'MC Donalds', 'Nota': 4.9, 'Distancia': 1.7},
{'Restaurante': 'Subway', 'Nota': 4.3, 'Distancia': 1.2},
{'Restaurante': 'Bobs', 'Nota': 4.2, 'Distancia': 0.8},
{'Restaurante': 'Giraffas', 'Nota': 4.9, 'Distancia': 1.3},
{'Restaurante': 'KFC', 'Nota': 4.2, 'Distancia': 1.5}
]
restaurantes.sort(reverse=True, key=onota) and restaurantes.sort(reverse=False, key=odistancia)
print (restaurantes[0])
print (restaurantes[1])
print (restaurantes[2])
print (restaurantes[3])
print (restaurantes[4])
print (restaurantes[5])