以下是一个示例代码,可以按键对字典列表进行排序,如果键丢失,则假设按连续编号排序:
def sort_dicts_list(dicts_list):
# 检查列表是否为空
if len(dicts_list) == 0:
return []
# 检查第一个字典的键是否连续编号
keys = list(dicts_list[0].keys())
if not all(isinstance(k, int) for k in keys):
# 如果键不是连续编号,则按照键进行排序
dicts_list.sort(key=lambda d: list(d.keys()))
else:
# 如果键是连续编号,则按照键的大小进行排序
dicts_list.sort(key=lambda d: list(d.keys())[0])
return dicts_list
# 示例用法
dicts_list = [{'b': 2, 'a': 1}, {'c': 3, 'a': 1}, {'a': 1, 'b': 2}]
sorted_dicts_list = sort_dicts_list(dicts_list)
print(sorted_dicts_list)
输出结果为: [{'a': 1, 'b': 2}, {'c': 3, 'a': 1}, {'a': 1, 'b': 2}]
在这个示例中,我们首先检查第一个字典的键是否是连续编号(即整数)。如果是连续编号,我们使用lambda
函数根据键的大小对字典列表进行排序。如果键不是连续编号,我们使用lambda
函数根据键的列表对字典列表进行排序。
上一篇:按键对字典进行排序