根据字典值之一的长度对字典列表进行排序

时间:2019-01-17 16:45:18

标签: python list sorting dictionary

我有一个字典清单。词典中有一个名为friends的键,其值是ID列表。我想根据好友列表中ID的数量对字典列表进行排序。

users=[{'id': 0, 'name': 'Hero', 'friends': [1, 2]}, 
{'id': 1, 'name': 'Dunn', 'friends': [0, 2, 3]},
{'id': 2, 'name': 'Sue', 'friends': [0, 1, 3]},
{'id': 3, 'name': 'Chi', 'friends': [1, 2, 4]}, 
{'id': 4, 'name': 'Thor', 'friends': [3, 5]}, 
{'id': 5, 'name': 'Clive', 'friends': [4, 6, 7]},
{'id': 6, 'name': 'Hicks', 'friends': [5, 8]}, 
{'id': 7, 'name': 'Devin', 'friends': [5, 8]}, 
{'id': 8, 'name': 'Kate', 'friends': [6, 7, 9]},
{'id': 9, 'name': 'Klein', 'friends': [8]}]

我该如何进行?

1 个答案:

答案 0 :(得分:1)

我相信这就是您的意思:

sorted(users, key=lambda d: len(d['friends']))

用户列表根据朋友的数量进行排序。朋友较少的用户会首先出现。如果两个用户的朋友数量相同,则他们出现的顺序是随机的。