以下是一个示例代码,可以按照两个条件对对象的键进行排序,然后再按字母顺序对其进行排序:
def sort_objects(objects):
sorted_objects = sorted(objects.items(), key=lambda x: (x[1]['condition1'], x[1]['condition2'], x[0]))
return sorted_objects
# 示例对象
objects = {
'obj1': {'condition1': 2, 'condition2': 3},
'obj2': {'condition1': 1, 'condition2': 2},
'obj3': {'condition1': 2, 'condition2': 1},
'obj4': {'condition1': 1, 'condition2': 1},
'obj5': {'condition1': 2, 'condition2': 2}
}
# 按条件排序
sorted_objects = sort_objects(objects)
# 输出排序结果
for obj in sorted_objects:
print(obj)
在这个示例中,我们定义了一个sort_objects
函数,它接受一个包含对象的字典作为参数。该函数使用sorted
函数对字典的键值对进行排序,其中key
参数使用lambda函数定义了排序的规则。lambda函数返回一个元组,按照condition1
、condition2
和键的顺序进行排序。最后,我们将排序结果打印出来。
运行上述代码,输出结果为:
('obj4', {'condition1': 1, 'condition2': 1})
('obj2', {'condition1': 1, 'condition2': 2})
('obj3', {'condition1': 2, 'condition2': 1})
('obj5', {'condition1': 2, 'condition2': 2})
('obj1', {'condition1': 2, 'condition2': 3})
可以看到,按照condition1
和condition2
进行排序后,再按字母顺序对键进行排序。