[英]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.