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

Python内置函数之sorted():对可迭代对象中的元素进行排序,返回一个新的列表

发布时间:2023-05-19 14:47:29

Python内置函数之sorted()

Python提供了一个内置函数sorted(),它可以对可迭代对象中的元素进行排序,返回一个新的列表。这个函数可以排序数字、字符串等类型的元素。

sorted()函数的用法

sorted函数的基本语法如下:

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

参数:

- iterable:表示要进行排序的可迭代对象,比如列表、元组等等。

- key:表示排序时按照什么规则进行排序。默认为None。

- reverse:表示是否进行倒叙排序。默认为False。

注意:在Python中,调用sorted()函数,并不会对原先的可迭代对象进行修改,而是产生一个新的已排序的列表。同时,sorted()函数可以对任何可迭代对象进行排序操作。

sorted()函数的实例

下面的例子是对一个列表进行排序:

mylist = [15, 19, 24, 28, 36]
new_list = sorted(mylist)
print(new_list)   # 返回 [15, 19, 24, 28, 36]

下面的例子是对一个元组进行排序:

mytuple = (15, 19, 24, 28, 36)
new_tuple = sorted(mytuple)
print(new_tuple)   # 返回 (15, 19, 24, 28, 36)

我们可以通过key参数指定按照元素的某个属性进行排序,例如:

students = [
    {'name': 'Tom', 'age': 20},
    {'name': 'Jack', 'age': 18},
    {'name': 'Mike', 'age': 22}
]

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

for student in new_students:
    print(student['name'])  # 按年龄升序排序,输出:Jack Tom Mike

我们还可以通过reverse参数来指定是否进行倒叙排序:

mylist = [15, 19, 24, 28, 36]
new_list = sorted(mylist, reverse=True)   # 进行倒叙排序
print(new_list)    # 返回 [36, 28, 24, 19, 15]

注意:reverse参数是一个布尔值,如果为True,则表示使用倒序排序。默认为False。

sorted()函数的应用场景

Python的sorted()函数可以在很多场景下使用,这里我们只举几个例子:

1.对数字列表进行排序

sorted()函数可以方便的对数字列表进行排序。例如,对一个整数列表进行排序:

numbers = [102, 1, 25, 4, 8]
new_numbers = sorted(numbers)
print(new_numbers)   # 返回 [1, 4, 8, 25, 102]

2.对字符串排序

字符串排序本质上和数字排序是一样的,因为在Python中,字符串也是可以比较大小的。例如,对一个字符串列表按照单词的长度排序:

words = ['A', 'is', 'apple', 'cat']
new_words = sorted(words, key=lambda x: len(x))
print(new_words)   # 返回 ['A', 'is', 'cat', 'apple']

3.对元素是元组的列表进行排序。

在Python中,元组本身就是一种不可变的可迭代对象。因此我们可以根据元组中的某个元素进行排序,例如:

students = [('Tom', 90), ('Jack', 89), ('Mike', 92)]
new_students = sorted(students, key=lambda x: x[1], reverse=True)
print(new_students)   # 返回 [('Mike', 92), ('Tom', 90), ('Jack', 89)]

我们可以看到,根据学生成绩进行排序时,需要将key参数指定为lambda x: x[1],表示根据元组中的第二个元素进行比较。同时使用reverse参数指定按照降序排列。

总结

sorted()函数是Python的内置函数之一,可以对可迭代对象中的元素进行排序,返回一个新的列表。除了可以进行数字、字符串等类型的排序,还可以对元素是元组的列表进行排序。通过指定key参数和reverse参数,可以进行排列的规则和排序方式。在实际应用中,sorted()函数有着广泛的应用场景。