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

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()函数可以对列表进行临时排序。我们可以使用这两个方法来对列表进行排序操作。