按d.values()对字典“d”排序,然后按相应键的长度排序

2024-10-06 15:15:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我想得到一个有两个约束的字典的倒序。首先,我根据值进行排序:

>>> d = {'I C': (2, 4), 'B I C': (2, 6), 'B I': (2, 6)}
>>> sortd = sorted(d.items(), key=lambda v: v[1], reverse=True)    (1)
>>> sortd
[('B I', (2, 6)), ('B I C', (2, 6)), ('I C', (2, 4))]

第二,对于值相同的项,我想得到前面键最长的那个。在前面的例子中,我希望得到这样的结果:

^{pr2}$

可以直接在我的sorted()命令(1)中执行吗?在


Tags: lambdakey命令true字典排序items例子
1条回答
网友
1楼 · 发布于 2024-10-06 15:15:55

在排序函数中包括键的长度:

sorted(d.items(), key=lambda v: (v[1], len(v[0])), reverse=True)

输出:

^{pr2}$

因此,每个项目都在元组(value, len(key))上排序;长度较短的项目在较长的长度之后进行反向排序,但前提是元组的第一个元素相同。在

相关问题 更多 >