es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ordenar un diccionario con respecto a la lista de valores.

Tengo 2 valores en la lista de cada clave del diccionario, necesito ordenar el diccionario de forma descendente por value1 y de forma ascendente por value2:

dict1={'123126':[100,'DDD'],'123121':[100,'AAA'],'123122':[100,'BBB'],'123123':[101,'CCC']}
dict2 = {clave: valor for clave,valor in sorted(dict1.items(), key = lambda ele: ((ele[1][0]),(ele[1][1])), reverse = True)}
print(dict2)

salida >>
{'123123': [101, 'CCC'], '123126': [100, 'DDD'], '123122': [100, 'BBB'], '123121': [100, 'AAA']}

Pero la salida esperada es:

{‘123123’: [101, ‘CCC’], ‘123126’: [100, ‘AAA’], ‘123122’: [100, ‘BBB’], ‘123121’: [100, ‘DDD’]}

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener la salida esperada, puede utilizar el siguiente código:

    dict1={'123126':[100,'DDD'],'123121':[100,'AAA'],'123122':[100,'BBB'],'123123':[101,'CCC']}
    dict2 = {key: val for key,val in sorted(dict1.items(), key = lambda ele: ((ele[1][0]),(ele[1][1])), reverse = True)}
    dict3 = {key: val for key,val in sorted(dict2.items(), key = lambda ele: ((ele[1][0]),(ele[1][1])), reverse = False)}
    print(dict3)
    
    Salida >>
    {'123123': [101, 'CCC'], '123126': [100, 'AAA'], '123122': [100, 'BBB'], '123121': [100, 'DDD']}
    

Comments are closed.