我的代码 (F1
) 中的一个函数返回一个字典列表。我需要对这个字典列表进行排序并打印出来。我们是升序还是降序对列表进行排序并不重要,只要它们是一致的。问题是,F1
每次都可能返回完全不同的字典列表:长度、键、值,一切都可能不同,而我无法提前知道。
如何安全且一致地对这样的列表进行排序?我有这个:
sorted_list = sorted(list_to_be_sorted, key=lambda k: k['name'])
但它在我的情况下不起作用,因为我可能有一个不包含“名称”的列表。
答案 0 :(得分:1)
一种解决方案是使用 dict.get
。如果字典中不存在键,则返回 None
(或其他默认值,如果需要):
sorted_list = sorted(list_to_be_sorted, key=lambda k: k.get('name'))
答案 1 :(得分:1)
假设所有密钥都相同,这可能就是您所需要的:
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}]