以下是“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()函数。