Python中的列表排序函数sort方法
发布时间:2023-06-06 14:56:34
Python中的列表方法sort()用于对列表进行排序。sort()方法有两种用法:
1. sort()方法可以对列表进行永久性排序,即会改变原列表的排序。
2. sorted()函数可以对列表进行临时排序,不会改变原列表的排序。
其语法如下:
语法:list.sort(key=None, reverse=False)
参数说明:
- key:可选参数,用来指定排序时的比较函数,可以是用户自定义的函数或lambda函数。
- reverse:可选参数,reverse=True时表示降序,reverse=False时表示升序。默认是升序。
使用例子:
# 定义一个列表 nums = [3, 7, 1, 4, 9, 6, 8, 2, 5] # 列表永久性排序 nums.sort() print(nums) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 列表永久性降序排序 nums.sort(reverse=True) print(nums) # [9, 8, 7, 6, 5, 4, 3, 2, 1] # 使用key排序 strs = ['aa', 'ab', 'bc', 'cd', 'da', 'ef'] strs.sort(key=len) print(strs) # ['aa', 'ab', 'bc', 'cd', 'da', 'ef']
使用示例中,我们可以看到sort()方法可以对列表进行永久性的排序,同时也可以进行降序排序。在使用key参数进行排序时,我们可以使用len函数或lambda函数来指定比较方式。
需要注意的是,列表中的元素必须可以比较,否则会出现TypeError异常。此外,sort()方法是一个就地排序方法,即会修改原列表,而不是创建一个新的排列好序的列表。
如果我们不希望改变原列表的排序,就可以使用sorted()函数。sorted()函数不改变原列表,而是返回一个排序好的新列表。
使用示例:
# 定义一个列表 nums = [3, 7, 1, 4, 9, 6, 8, 2, 5] # 列表临时排序 sorted_nums = sorted(nums) print(sorted_nums) # [1, 2, 3, 4, 5, 6, 7, 8, 9] # 列表临时降序排序 sorted_nums = sorted(nums, reverse=True) print(sorted_nums) # [9, 8, 7, 6, 5, 4, 3, 2, 1] # 使用key排序 strs = ['aa', 'ab', 'bc', 'cd', 'da', 'ef'] sorted_strs = sorted(strs, key=len) print(sorted_strs) # ['aa', 'ab', 'bc', 'cd', 'da', 'ef'] print(strs) # ['aa', 'ab', 'bc', 'cd', 'da', 'ef']
使用示例中,我们可以看到sorted()函数不会改变原列表,而是返回一个排序好的新列表。此外,sorted()函数也可以使用key参数指定比较方式。
总结来说,sort()方法可以对列表进行永久性排序,而sorted()函数可以对列表进行临时排序。我们可以使用这两个方法来对列表进行排序操作。
