按两个值对 python dict 进行排序
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]
字符串的长度排序,然后按相反的顺序排序,即输出将是 k2、k1、k3、k4。
sorted(d, key=lambda x: (d[x][2], -len(d[x][0])))
解释:
迭代字典 return 的键。因此,sorted(d, ...)
将 return 键按 key
标准
排序
key
lambda 生成将用于排序比较的元组。元组使用第一个元素进行比较,然后是第二个,依此类推。如果元组用作键,它将使用第一个元素(x[2]
),然后是第二个(第一个字符串的长度)等进行排序
对长度倒序,对数值不倒序,长度取反
我有以下列表的字典
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]
字符串的长度排序,然后按相反的顺序排序,即输出将是 k2、k1、k3、k4。
sorted(d, key=lambda x: (d[x][2], -len(d[x][0])))
解释:
迭代字典 return 的键。因此,sorted(d, ...)
将 return 键按 key
标准
key
lambda 生成将用于排序比较的元组。元组使用第一个元素进行比较,然后是第二个,依此类推。如果元组用作键,它将使用第一个元素(x[2]
),然后是第二个(第一个字符串的长度)等进行排序
对长度倒序,对数值不倒序,长度取反