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

Python中的sorted函数是干什么用的?

发布时间:2023-07-08 23:17:09

在Python中,sorted()函数用于对可迭代对象进行排序,返回一个新的排序后的列表。它接受一个iterable对象作为参数,如列表、元组和字符串,并返回一个新的排序列表。

sorted()函数的基本语法如下:

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

参数说明:

- iterable: 必需,表示要排序的可迭代对象。

- key:可选,指定一个排序函数用于排序。

- reverse:可选,标志是否按照逆序排序,默认为False。

sorted()函数可以对列表、元组和字符串进行排序。以下是它的具体用法和示例:

1. 对列表进行排序:

列表是Python中常用的数据结构之一,可以通过sorted()函数对其进行排序。例如,对一个包含整数的列表进行排序可以使用以下代码:

lst = [4, 2, 8, 1, 9]

sorted_lst = sorted(lst)

print(sorted_lst)

# 输出: [1, 2, 4, 8, 9]

2. 对元组进行排序:

元组是不可变的序列,也可以被sorted()函数排序。排序后会返回一个新的元组。以下示例对一个包含字符串的元组进行排序:

tup = ('banana', 'apple', 'cherry', 'date')

sorted_tup = sorted(tup)

print(sorted_tup)

# 输出: ['apple', 'banana', 'cherry', 'date']

3. 对字符串进行排序:

字符串是由字符组成的序列,可以按照字符的顺序进行排序。以下示例对一个包含字母的字符串进行排序:

s = 'xycab'

sorted_s = sorted(s)

print(sorted_s)

# 输出: ['a', 'b', 'c', 'x', 'y']

4. 自定义排序函数:

sorted()函数还可以接受一个可调用对象作为key参数,用于指定自定义的排序函数。这个函数用于从每个元素中提取一个关键字,sorted()将根据这些关键字对元素进行排序。例如,以下示例对一个包含学生信息的列表按照学生的年龄进行升序排序:

students = [

    {'name': 'Alice', 'age': 20},

    {'name': 'Bob', 'age': 18},

    {'name': 'Charlie', 'age': 19}

]

sorted_students = sorted(students, key=lambda x: x['age'])

print(sorted_students)

# 输出: [{'name': 'Bob', 'age': 18}, {'name': 'Charlie', 'age': 19}, {'name': 'Alice', 'age': 20}]

5. 逆序排序:

通过将reverse参数设置为True,可以让sorted()函数进行逆序排序。以下示例对一个包含整数的列表进行逆序排序:

lst = [4, 2, 8, 1, 9]

reverse_sorted_lst = sorted(lst, reverse=True)

print(reverse_sorted_lst)

# 输出: [9, 8, 4, 2, 1]

这些示例展示了sorted()函数的基本用法。需要注意的是,sorted()函数返回一个新的排序后的列表,不会修改原始对象。如果要对原始对象进行排序,可以使用列表的sort()方法。