对列表嵌套字典进行排序,用sorted
方法一,以某个键值排序:
dict1 = [
{'id': '4', 'name': 'b'},
{'id': '6', 'name': 'c'},
{'id': '3', 'name': 'a'},
{'id': '1', 'name': 'g'},
{'id': '8', 'name': 'f'}
]
dict1 = sorted(dict1, key = lambda x: x["id"])
print(dict1)
输出:
[{'id': '1', 'name': 'g'}, {'id': '3', 'name': 'a'}, {'id': '4', 'name': 'b'}, {'id': '6', 'name': 'c'}, {'id': '8', 'name': 'f'}]
方法二,根据类的某个属性排序:
class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
student_tuples = sorted(student_tuples, key = lambda student: student[2]) #根据年龄排序
student_objects = sorted(student_objects, key = lambda student.name, reverse=True) #根据类的名字属性排序,且反序
输出:
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
[('john', 'A', 15), ('jane', 'B', 12), ('dave', 'B', 10)]