Considere este formato de diccionario.Ordenar el diccionario anidado por valor y el resto por otro valor en Python
{'KEY1':{'name':'google','date':20100701,'downloads':0},
'KEY2':{'name':'chrome','date':20071010,'downloads':0},
'KEY3':{'name':'python','date':20100710,'downloads':100}}
Me gustaría que el diccionario estuviera ordenado por descargas primero, y luego todos los elementos sin descargas ordenados por fecha. Obviamente, no se puede ordenar un diccionario, solo necesito una lista ordenada de claves que pueda repetir.
['KEY3','KEY1','KEY2']
ya puedo ordenar la lista por cualquiera de los valores utilizando sorted
, pero ¿cómo puedo ordenar por segundo valor también?
¡Línea muy bonita! Aquí se explica cómo puede invertir el orden de la clasificación: simplemente agregue 'reverse = True' como un parámetro a la función' sorted', al final. Gracias – otmezger
Cambie a la de arriba.your_list = sorted (your_dict, key = lambda x: (your_dict [x] ['descargas'], your_dict [x] ['date'])) –
Hola, estoy obteniendo un error 'TypeError: tipo de insayable:' dict ' 'al llamar como:' ordenados (d.items(), clave = lambda x: (d [x] ['descargas'], d [x] ['fecha'])) ', donde d es igual al diccionario en el OP. Por favor, si alguien conoce el problema, hágamelo saber. Gracias – ChickenFeet