python列表排序用 sort()和sorted()的区别

  • Post category:Python

当我们需要对Python中的列表进行排序时,可以使用sort()和sorted()这两个方法。两者都可以将列表中的元素进行排序,但它们具有一些不同的特点。

sort()

sort()是列表对象的方法,它会改变原始的列表内容,将列表按照指定的排序方式进行排序。sort()方法不会返回任何值,返回的是None类型。

sort()方法的用法如下:

list.sort(key=None, reverse=False)

其中,key参数用于指定排序规则,如果不指定,将使用默认规则;reverse参数用于指定是否逆序排序,默认是升序排序。

下面是一个使用sort()方法对列表进行排序的例子:

# 定义一个列表
num_list = [3, 5, 1, 4, 2]

# 使用sort()方法进行升序排序
num_list.sort()

print(num_list)  # 输出结果:[1, 2, 3, 4, 5]

sorted()

sorted()是Python内置函数,它会创建一个新的已排序的列表,而不是改变原始列表的顺序。sorted()会返回已排序的列表。

sorted()方法的用法如下:

sorted(iterable, key=None, reverse=False)

其中,iterable参数用于指定要排序的序列,可以是list、tuple、str等;key参数用于指定排序规则,如果不指定,将使用默认规则;reverse参数用于指定是否逆序排序,默认是升序排序。

下面是一个使用sorted()方法对列表进行排序的例子:

# 定义一个列表
num_list = [3, 5, 1, 4, 2]

# 使用sorted()方法进行升序排序
new_list = sorted(num_list)

print(new_list)  # 输出结果:[1, 2, 3, 4, 5]

需要注意的是,sorted()函数返回的是一个已排序的新列表,如果要将排序结果保存到原始列表中,可以使用以下方式:

num_list = [3, 5, 1, 4, 2]

# 将排序结果保存到原始列表中
num_list = sorted(num_list)

print(num_list)  # 输出结果:[1, 2, 3, 4, 5]

总结:

sort()方法和sorted()函数都可以对列表进行排序,但是它们有一些不同的地方:

  • sort()方法是列表对象的方法,会改变原始的列表内容,排序结果存储在原始列表中;而sorted()函数会创建一个新的已排序的列表,不会改变原始列表的顺序。
  • sort()方法不返回值,返回的是None类型;而sorted()函数返回已排序的新列表。

在实际使用时,应根据实际情况来选择使用哪个方法。如果想要修改原始的列表,可以使用sort()方法;如果需要得到已排序的新列表,可以使用sorted()函数。