繁体   English   中英

按两个值对 python 字典进行排序

[英]Sort python dict by two values

我有以下清单

d = {
    'k1':['EKAD', 444.2089, 121],
    'k2':['EKADD', 559.2358, 121],
    'k3':['KADDLG', 600.2988, 122],
    'k4':['ADDLGKG', 657.3202, 123]}

我希望首先按value[2]对键进行排序,然后按value[0]字符串的长度并以相反的顺序排序,即 output 将是 k2、k1、k3、k4。

sorted(d, key=lambda x: (d[x][2], -len(d[x][0])))

解释:

迭代字典返回键。 因此, sorted(d, ...)将返回按键标准排序的key

key lambda 生成将用于排序比较的元组。 元组使用第一个元素进行比较,然后是第二个,依此类推。如果元组用作键,它将使用第一个元素( x[2] ),然后是第二个(第一个字符串的长度)等进行排序。

要反转长度的顺序,而不是数值的顺序,长度被取反

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM