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

Python中的sorted函数:对序列进行排序的函数

发布时间:2023-11-07 05:25:29

Python中的sorted函数是一个用来对序列进行排序的函数。它可以用来对列表(list)、元组(tuple)、字符串(string)等类型的数据进行排序。sorted函数会返回一个新的已排序的序列,而不是修改原来的序列。

sorted函数的基本用法很简单,可以接受一个可迭代的对象作为参数,并返回一个排序后的列表。例如,可以对一个列表进行排序:

nums = [5, 2, 8, 1, 7]
sorted_nums = sorted(nums)
print(sorted_nums)

输出结果为 [1, 2, 5, 7, 8]

sorted函数还可以接受一些可选的参数来指定排序的方式。其中最常用的参数是reverse,它决定了排序的顺序是升序还是降序,默认值为False,即升序排序。例如,可以对一个列表进行降序排序:

nums = [5, 2, 8, 1, 7]
sorted_nums = sorted(nums, reverse=True)
print(sorted_nums)

输出结果为 [8, 7, 5, 2, 1]

另一个常用的参数是key,它可以接受一个函数作为参数,这个函数将被应用于所有的元素上,并根据其返回值进行排序。例如,可以根据元素的长度对一个字符串列表进行排序:

words = ["apple", "orange", "banana", "kiwi"]
sorted_words = sorted(words, key=len)
print(sorted_words)

输出结果为 ['kiwi', 'apple', 'orange', 'banana']

除了以上两个常用的参数,sorted函数还可以接受一个名为itemgetter的函数作为参数,它可以用来排序复杂的数据结构,如列表中的字典。例如,可以根据字典中的某个键对一个字典列表进行排序:

students = [
    {"name": "Alice", "age": 20},
    {"name": "Bob", "age": 18},
    {"name": "Charlie", "age": 19}
]
sorted_students = sorted(students, key=itemgetter("age"))
print(sorted_students)

输出结果为 [

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

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

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

]。

需要注意的是,sorted函数会返回一个新的已排序的序列,而不是修改原来的序列。如果想要对原来的序列进行排序,可以使用列表中的sort方法。例如:

nums = [5, 2, 8, 1, 7]
nums.sort()
print(nums)

输出结果为 [1, 2, 5, 7, 8]

总结来说,Python中的sorted函数是一个非常有用的函数,可以用来对列表、元组、字符串等序列进行排序。它的基本用法很简单,可以接受一个可迭代的对象作为参数,并返回一个排序后的列表。此外,还可以通过reverse参数来指定排序的顺序,通过key参数来指定排序的依据,以及通过itemgetter参数来排序复杂的数据结构。