千锋教育-做有情怀、有良心、有品质的职业教育机构
Python中的sort()函数是一个非常常用的函数,用于对列表进行排序。sort()函数有两个可选参数:reverse和key,其中reverse用于指定排序顺序,key用于指定排序的关键字。默认情况下,sort()函数按照升序排列列表。
_x000D_sort()函数的语法如下:
_x000D_list.sort(reverse=True|False, key=myFunc)
_x000D_其中,reverse为可选参数,默认为False,表示升序排序;当reverse=True时,表示降序排序。key也是可选参数,用于指定排序的关键字,即按照哪个属性或者函数进行排序。
_x000D_下面是一个简单的例子:
_x000D_`python
_x000D_fruits = ['apple', 'banana', 'cherry', 'orange']
_x000D_fruits.sort()
_x000D_print(fruits)
_x000D_ _x000D_输出结果为:
_x000D_`python
_x000D_['apple', 'banana', 'cherry', 'orange']
_x000D_ _x000D_这里我们没有指定任何参数,因此默认按照升序排序。
_x000D_## sort()函数的使用方法
_x000D_sort()函数有多种使用方法,下面我们将分别介绍。
_x000D_### 按照字符串长度排序
_x000D_我们可以使用key参数来指定排序的关键字,例如按照字符串长度排序:
_x000D_`python
_x000D_fruits = ['apple', 'banana', 'cherry', 'orange']
_x000D_fruits.sort(key=len)
_x000D_print(fruits)
_x000D_ _x000D_输出结果为:
_x000D_`python
_x000D_['apple', 'cherry', 'banana', 'orange']
_x000D_ _x000D_这里我们使用了len函数作为排序的关键字,因此按照字符串长度进行排序。
_x000D_### 按照多个属性排序
_x000D_有时候我们需要按照多个属性进行排序,这时候可以使用一个lambda函数来指定排序的关键字。例如按照年龄和姓名进行排序:
_x000D_`python
_x000D_students = [
_x000D_{'name': 'Tom', 'age': 18},
_x000D_{'name': 'Jack', 'age': 17},
_x000D_{'name': 'Lucy', 'age': 20},
_x000D_{'name': 'Bob', 'age': 18},
_x000D_students.sort(key=lambda x: (x['age'], x['name']))
_x000D_print(students)
_x000D_ _x000D_输出结果为:
_x000D_`python
_x000D_{'name': 'Jack', 'age': 17},
_x000D_{'name': 'Bob', 'age': 18},
_x000D_{'name': 'Tom', 'age': 18},
_x000D_{'name': 'Lucy', 'age': 20},
_x000D_ _x000D_这里我们使用了lambda函数来指定排序的关键字,按照年龄和姓名进行排序。
_x000D_### 按照降序排序
_x000D_我们可以使用reverse参数来指定排序顺序,例如按照降序排序:
_x000D_`python
_x000D_fruits = ['apple', 'banana', 'cherry', 'orange']
_x000D_fruits.sort(reverse=True)
_x000D_print(fruits)
_x000D_ _x000D_输出结果为:
_x000D_`python
_x000D_['orange', 'cherry', 'banana', 'apple']
_x000D_ _x000D_这里我们将reverse参数设置为True,表示按照降序排序。
_x000D_## sort()函数的相关问答
_x000D_### sort()函数和sorted()函数有什么区别?
_x000D_sort()函数用于对列表进行原地排序,即直接修改原列表,而sorted()函数用于对任意可迭代对象进行排序,返回一个新的排序后的列表。
_x000D_### sort()函数和sorted()函数的时间复杂度是多少?
_x000D_sort()函数和sorted()函数的时间复杂度都是O(nlogn),其中n为列表的长度。
_x000D_### sort()函数的默认排序顺序是什么?
_x000D_sort()函数的默认排序顺序是升序排序。
_x000D_### sort()函数可以对任意类型的列表进行排序吗?
_x000D_可以,sort()函数可以对任意类型的列表进行排序,只要列表中的元素可以进行比较操作即可。
_x000D_### sort()函数的key参数可以是一个函数吗?
_x000D_可以,key参数可以是一个函数,用于指定排序的关键字。
_x000D_上一篇
python里round怎么用相关推荐