在Python中,可以使用sorted
函数来对列表进行排序,并通过key
参数指定排序的条件。对于多个非标准条件的排序,可以使用lambda函数来定义排序的规则。
以下是一个例子,假设有一个包含人员信息的列表,每个人员信息包括姓名、年龄和身高。我们希望按照年龄从小到大排序,如果年龄相同则按照身高从高到低排序。
people = [
{'name': 'John', 'age': 25, 'height': 180},
{'name': 'Alice', 'age': 22, 'height': 165},
{'name': 'Bob', 'age': 25, 'height': 175},
{'name': 'Charlie', 'age': 22, 'height': 170}
]
sorted_people = sorted(people, key=lambda x: (x['age'], -x['height']))
print(sorted_people)
输出结果为:
[{'name': 'Alice', 'age': 22, 'height': 165},
{'name': 'Charlie', 'age': 22, 'height': 170},
{'name': 'Bob', 'age': 25, 'height': 175},
{'name': 'John', 'age': 25, 'height': 180}]
在lambda函数中,(x['age'], -x['height'])
表示先按照年龄升序排序,如果年龄相同则按照身高降序排序。-x['height']
表示将身高取负值,这样可以实现从高到低的排序。