我有一个字典清单。词典中有一个名为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]}]
我该如何进行?
答案 0 :(得分:1)
我相信这就是您的意思:
sorted(users, key=lambda d: len(d['friends']))
用户列表根据朋友的数量进行排序。朋友较少的用户会首先出现。如果两个用户的朋友数量相同,则他们出现的顺序是随机的。