Python中列表排序函数:sort()和sorted()的区别
发布时间:2023-11-08 12:31:49
在Python中,有两个函数可以用来排序列表:sort()和sorted()。这两个函数之间有一些关键的区别。
sort()是列表的方法,它会就地排序列表,即它会修改原始列表。这意味着,当我们使用sort()函数时,列表的顺序会被改变,而且没有返回值。sort()函数默认按照升序排序列表,但我们也可以通过传递reverse=True参数来进行降序排序。下面是一个使用sort()函数的例子:
numbers = [5, 2, 8, 1, 3] numbers.sort() print(numbers) # 输出 [1, 2, 3, 5, 8]
sorted()是一个内置函数,它会返回一个已排序的新列表,而不会修改原始列表。这意味着,当我们使用sorted()函数时,原始列表的顺序不会被改变。我们可以通过传递reverse=True参数来进行降序排序。下面是一个使用sorted()函数的例子:
numbers = [5, 2, 8, 1, 3] sorted_numbers = sorted(numbers) print(sorted_numbers) # 输出 [1, 2, 3, 5, 8] print(numbers) # 输出 [5, 2, 8, 1, 3]
除了返回一个新的已排序列表之外,sorted()函数还可以对其他可迭代对象进行排序,例如元组和字典。这使得sorted()函数更加灵活,可以用于不同类型的数据。
另一个区别是sort()函数是一个原地排序,它的时间复杂度是O(nlogn),这意味着它是一个原地排序算法。相比之下,sorted()函数是一个稳定排序算法,它的时间复杂度也是O(nlogn),但它是通过创建一个新列表来实现排序的,因此需要更多的内存空间。
总的来说,sort()函数用于对列表进行原地排序,它修改原始列表并没有返回值。而sorted()函数用于对列表或其他可迭代对象进行排序,并返回一个已排序的新列表。选择使用哪个函数取决于具体的需求和对原始列表的要求。
