欢迎访问宙启技术站
智能推送

掌握Python中sorting()函数的使用可以优化数据查询和排序操作。

发布时间:2023-12-18 22:44:55

Python中的sorting()函数是用于对列表中的元素进行排序的内置函数。它可以按照升序或降序对列表进行排序,并返回一个新的排序后的列表。

sorting()函数使用的语法如下:

sorted(iterable, key=None, reverse=False)

- iterable:需要排序的可迭代对象,例如列表或元组。

- key:指定一个函数用于从每个列表元素中提取一个用于排序的关键字,默认为None。

- reverse:如果设置为True,则将按降序排序,默认为False,即按升序排序。

下面我们来看一些使用sorting()函数的例子:

#### 1. 简单的排序

假设我们有一个数字列表,我们想按升序对它进行排序:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果为:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

#### 2. 按关键字排序

如果我们有一个包含人员信息的列表,我们可以按照姓名的字母顺序对其进行排序:

people = [
    {"name": "John", "age": 25},
    {"name": "Alice", "age": 20},
    {"name": "Bob", "age": 30},
    {"name": "Carl", "age": 22}
]

sorted_people = sorted(people, key=lambda x: x["name"])
print(sorted_people)

输出结果为:

[{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 30}, {'name': 'Carl', 'age': 22}, {'name': 'John', 'age': 25}]

#### 3. 按多个关键字排序

如果我们希望在按照姓名排序的基础上,再按照年龄进行排序,我们可以使用多个关键字来排序:

sorted_people = sorted(people, key=lambda x: (x["name"], x["age"]))
print(sorted_people)

输出结果为:

[{'name': 'Alice', 'age': 20}, {'name': 'Bob', 'age': 30}, {'name': 'Carl', 'age': 22}, {'name': 'John', 'age': 25}]

#### 4. 降序排序

如果我们希望按照降序而不是升序对列表进行排序,可以将reverse参数设置为True:

sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)

输出结果为:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

#### 5. 排序不改变原始列表

sorting()函数不会改变原始列表的顺序,而是返回一个新的排序后的列表。例如:

print(numbers)

输出结果为:[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

sorted_numbers = sorted(numbers)
print(sorted_numbers)

输出结果为:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

print(numbers)

输出结果仍为:[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

通过使用sorting()函数,我们可以轻松地对列表中的元素进行排序,并根据需要进行查询和排序操作。这有助于优化我们的数据处理和分析任务。