Python对列表进行排序的5种方法
Python提供了很多种排序方法,可以根据具体的需求选择合适的方法。
1.sort()方法:
sort()方法是列表对象的一个方法,可以直接对列表进行排序,不需要创建新的列表。sort()方法有两个可选参数:reverse和key。
reverse参数是一个布尔值,用于指定排序顺序是升序还是降序,默认为False(升序)。
key参数是一个函数,用于指定排序的关键字。默认为None,表示按照元素的大小进行排序。
示例代码:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
lst.sort() # 默认升序排序
print(lst) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
lst.sort(reverse=True) # 降序排序
print(lst) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key=len) # 按照字符串长度排序
print(lst) # ['pear', 'apple', 'banana', 'orange']
2.sorted()函数:
sorted()函数是Python内置函数,可以对任何可迭代对象进行排序,返回一个新的列表。sorted()函数有三个可选参数:reverse、key和cmp。
reverse参数和sort()方法中的reverse参数作用相同。
key参数和sort()方法中的key参数作用相同。
cmp参数是一个函数,用于指定比较两个元素的规则。默认为None,表示按照元素的大小进行排序。
示例代码:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = sorted(lst) # 默认升序排序
print(new_lst) # [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
new_lst = sorted(lst, reverse=True) # 降序排序
print(new_lst) # [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
lst = ['apple', 'banana', 'orange', 'pear']
new_lst = sorted(lst, key=len) # 按照字符串长度排序
print(new_lst) # ['pear', 'apple', 'banana', 'orange']
除了sort()方法和sorted()函数,Python还提供了一些其他的排序方法,例如:
3.使用lambda表达式作为key参数进行排序:
lambda表达式是一种匿名函数,可以用于简化代码。在排序时,可以使用lambda表达式作为key参数,指定排序的关键字。
示例代码:
lst = ['apple', 'banana', 'orange', 'pear']
lst.sort(key=lambda x: x[1]) # 按照第二个字母排序
print(lst) # ['banana', 'orange', 'pear', 'apple']
4.使用operator模块进行排序:
operator模块提供了一些函数,可以用于操作Python中的内置对象。在排序时,可以使用operator模块中的函数作为key参数,指定排序的关键字。
示例代码:
import operator
lst = [('apple', 3), ('banana', 2), ('orange', 4), ('pear', 1)]
lst.sort(key=operator.itemgetter(1)) # 按照第二个元素排序
print(lst) # [('pear', 1), ('banana', 2), ('apple', 3), ('orange', 4)]
5.使用numpy模块进行排序:
numpy模块是Python中用于科学计算的一个重要模块,提供了很多数组操作函数。在排序时,可以使用numpy模块中的函数进行排序。
示例代码:
import numpy as np
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_lst = np.sort(lst) # 默认升序排序
print(new_lst) # [1 1 2 3 3 4 5 5 5 6 9]
new_lst = np.sort(lst)[::-1] # 降序排序
print(new_lst) # [9 6 5 5 5 4 3 3 2 1 1]
作者:飞起来fly呀