📅  最后修改于: 2023-12-03 15:36:52.054000             🧑  作者: Mango
在 Python 中,可以使用 sorted()
函数来对列表进行排序。除了默认的升序排序,我们还可以按照键(Key)来排序。下面是一个示例代码,展示如何对列表按键排序:
>>> data = [{'name': 'Alice', 'age': 26}, {'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 20}]
>>> sorted(data, key=lambda x: x['name'])
[{'name': 'Alice', 'age': 26}, {'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 20}]
>>> sorted(data, key=lambda x: x['age'])
[{'name': 'Charlie', 'age': 20}, {'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 26}]
在上面的代码中,我们生成了一个包含字典的列表 data
,然后使用 sorted()
函数进行排序。首先,我们对列表按照名字进行排序,使用 key
参数传递了一个 lambda 函数,这个函数返回元素的 'name'
属性。接下来,我们对列表按照年龄进行排序,同样使用 key
参数传递了一个 lambda 函数,这个函数返回元素的 'age'
属性。
为了实现更复杂的排序方式,我们可以使用 lambda 函数返回一个复合键,比如同时按照姓名和年龄进行排序:
>>> sorted(data, key=lambda x: (x['name'], -x['age']))
[{'name': 'Alice', 'age': 26}, {'name': 'Bob', 'age': 22}, {'name': 'Charlie', 'age': 20}]
在上面的代码中,我们使用一个元组作为排序的键,第一个元素是 'name'
属性,第二个元素是 -age
,表示年龄的倒序排列。
总之,对于列表按键排序,Python 提供了非常方便的 sorted()
函数,通过传递适当的 lambda 函数,我们可以实现各种排序方式。