我的代码中的一个函数(F1
(返回字典列表。我需要把这份字典清单整理一下,然后打印出来。只要它们是一致的,我们是按升序还是降序对列表进行排序都无关紧要。问题是,F1
每次都可能返回一个完全不同的字典列表:长度、键、值,所有内容都可能不同,而我无法提前知道。
如何安全、一致地对这样的列表进行排序?我有这个:
sorted_list = sorted(list_to_be_sorted, key=lambda k: k['name'])
但这在我的情况下不起作用,因为我可能有一个不包含"名称"的列表。
假设所有密钥都相同,这可能就是您所需要的:
list_to_be_sorted = [{"name": 3}, {"name": 2}, {"name": 4}, {"name": 1}]
sorted_list = sorted(list_to_be_sorted, key=lambda k: k[[*k][0]])
输出:
[{'name': 1}, {'name': 2}, {'name': 3}, {'name': 4}]
一种解决方案是使用dict.get
。如果字典中不存在密钥,则返回None
(或其他默认值,如果需要(:
sorted_list = sorted(list_to_be_sorted, key=lambda k: k.get('name'))