Python中的list.sort()方法和函数sorted(list)

  • Post category:Python

以下是“Python中的list.sort()方法和函数sorted(list)”的完整攻略。

1. list.sort()方法

在Python中,list.sort()方法用于对列表进行排序。该方法会直接修改原列表,而不是返回一个新的排序后的列表。示例如下:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort()
print(my_list)  # 输出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

在上面的示例代码中,我们首先定义了一个名为my_list的列表,然后使用sort()方法对其进行排序。最后,使用print()函数输出排序后的列表。

sort()方法还可以接受一个reverse参数,用于指定排序的顺序。当reverse为True时,表示降序排序;当reverse为False时,表示升序排序。示例如下:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)  # 输出[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在上面的示例代码中,我们将reverse参数设置为True,表示降序排序。

2. sorted(list)

除了list.sort()方法外,Python还提供了一个sorted()函数,用于对列表进行排序。与list.sort()方法不同的是,sorted()函数会返回一个新的排序后的列表,而不会修改原列表。示例如下:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list)
print(new_list)  # 输出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
print(my_list)  # 输出[3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]

在上面的示例代码中,我们首先定义了一个名为my_list的列表,然后使用sorted()函数对其进行排序,并将排序后的结果赋值给一个新的列表new_list。最后,使用print()函数输出排序后的新列表和原列表。

sorted()函数也可以接受一个reverse参数,用于指定排序的顺序。当reverse为True时,表示降序排序;当reverse为False时,表示升序排序。示例如下:

my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
new_list = sorted(my_list, reverse=True)
print(new_list)  # 输出[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

在上面的示例代码中,我们将reverse参数设置为True,表示降序排序。

3. 区别说明

list.sort()和sorted()函数都可以用于对列表进行排序,但是它们之间有一些区别:

  • list.sort()方法会直接修改原列表,而sorted()函数会返回一个新的排序后的列表,不会修改原列表。
  • list.sort()方法没有返回值,而sorted()函数会返回一个新的排序后的列表。
  • list.sort()方法只能于列表,而sorted()函数可以用于任何可迭代对象。

综上所述,list.sort()方法和sorted()函数各有优缺点,需要根据具体情况选择合适的方法。如果需要在原列表上进行排序,可以使用list.sort()方法;如果需要保留原列表并返回一个新的排序的列表,可以使用sorted()函数。