【发布时间】:2021-12-29 13:44:52
【问题描述】:
我在每个字典键的列表中有 2 个值,需要对 value1 上的字典 desc 和 value2 上的 asc 进行排序:
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)}
print(dict2)
output >>
{'123123': [101, 'CCC'], '123126': [100, 'DDD'], '123122': [100, 'BBB'], '123121': [100, 'AAA']}
但预期的输出是
{'123123': [101, 'CCC'], '123126': [100, 'AAA'], '123122': [100, 'BBB'], '123121': [100, 'DDD']}
【问题讨论】:
-
我已经用两个单独的语句解决了这个问题: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][1] , reverse = False)} dict3 = {key: val for key,val in sorted(dict2.items(), key = lambda ele: ele[1][0], reverse = True)}
-
你能试试
dict(sorted(d.items(),key= lambda x:(-x[1][0], x[1][1])))吗?我不明白为什么我的解决方案对你不起作用。 -
感谢 Onyambu .. 它解决了问题
标签: python-3.x list sorting dictionary