如何按最长到最短对词典进行排序

2024-06-16 09:03:14 发布

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

我有一本python字典,看起来像这样

d = {
    'USA': ['US', 'USA', 'United States'],
    'BRA': ['Brazil', 'BR'],
    'DEU': ['Germany', 'German', 'French', 'France', 'FR', 'UK', ' United Kingdom']
}

我试图按从最长到最短(列表长度)排序,我发现这是一种方法,但排序不正确

srt = sorted(d.items(), key=lambda x: x[1], reverse=True)

我的输出是:

[('USA', ['US', 'USA', 'United States']), ('DEU', ['Germany', 'German', 'French', 'France', 'FR', 'UK', ' United Kingdom']), ('BRA', ['Brazil', 'BR'])]

其中键“DEU”应在列表中的第一位,而不是第二位?我做错了什么


Tags: brfrunitedkingdomusgermanbraziluk
1条回答
网友
1楼 · 发布于 2024-06-16 09:03:14

您需要参考lambda中的列表长度,如下所示:

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

这将产生:

[('DEU', ['Germany', 'German', 'French', 'France', 'FR', 'UK', ' United Kingdom']), ('USA', ['US', 'USA', 'United States']), ('BRA', ['Brazil', 'BR'])]

相关问题 更多 >