Skip to main content
 首页 » 编程设计

Python:列表字典的排序表示,在删除重复项后按列表中元素的数量排序

2025年05月04日14zhengyun_ustc

我有一本看起来像这样的字典:

example_dict = { 
        0: [(1,2),(3,4),(3,4),(4,5)], 
        1: [(1,2),(3,4),(5,6),(7,8)], 
        2: [(4,5),(7,8)]} 

我想根据每个列表中的元素数量在“暂时”删除重复项后得到这个字典的排序表示(仅出于排序目的,我不想删除删除元组)。如此排序的 example_dict 将具有以下(升序)键顺序:2,0,1。

是否有任何有效的 Pythonic 方法来做到这一点?

请您参考如下方法:

print sorted(example_dict,key=lambda x: len(set(example_dict[x]))) 

输出:

[2, 0, 1] 

或者,如果您希望将字典项目排序为元组列表:

print sorted(example_dict.items(),key=lambda x: len(set(x[1]))) 

输出:

[(2, [(4, 5), (7, 8)]), (0, [(1, 2), (3, 4), (3, 4), (4, 5)]), (1, [(1, 2), (3, 4), (5, 6), (7, 8)])]