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

sort()函数和sorted()函数的区别及用法

发布时间:2023-06-25 11:35:55

sort()函数和sorted()函数是Python中常用的两种排序函数,它们都可以用于对Python的列表、元组和数组进行排序。虽然它们都可以完成排序的操作,但是它们的实现方式有很大的不同。

首先,sort()函数是列表的一个方法,是直接对原来的列表进行排序的。而sorted()函数则是Python内置函数,会返回一个新的排序后的列表,不会改变原来的列表。因此,如果需要保留原列表的原始顺序,应该使用sorted()函数,如果要改变原列表的顺序,可以使用sort()函数。

其次,sort()函数只能作用于列表,而sorted()函数可以作用于列表、元组、字典以及其他可以进行迭代的对象,返回一个排好序的列表。另外,sort()函数在使用时不需要指定参数,而sorted()函数则需要指定一个可迭代的对象作为参数。

除了这些区别之外,sort()函数和sorted()函数也有一些相同的用法和参数。它们都可以接受一个reverse参数,用于控制排序是升序还是降序。如果reverse为True,表示降序排列,否则表示升序排列。默认情况下,都是升序排列。

此外,sort()函数和sorted()函数还可以接受一个key关键字参数,用于指定比较的元素。当比较的元素是复杂的数据类型时,可以使用这个参数进行自定义排序。例如,假设要对一个包含多个字典的列表按照字典中某个key的值进行排序,就可以使用key参数来指定这个key。

下面来看一下sort()函数和sorted()函数的具体用法:

sort()函数用法示例:

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

b = ["abc", "ccc", "aaa"]
b.sort(reverse=True)
print(b)  # 输出 ['ccc', 'aaa', 'abc']

sorted()函数用法示例:

a = [3, 1, 4, 2, 6, 5]
b = sorted(a)
print(a)  # 输出 [3, 1, 4, 2, 6, 5]
print(b)  # 输出 [1, 2, 3, 4, 5, 6]

c = ["abc", "ccc", "aaa"]
d = sorted(c, key=len)
print(c)  # 输出 ['abc', 'ccc', 'aaa']
print(d)  # 输出 ['aaa', 'abc', 'ccc']

从上面的例子中可以看出,sort()函数会直接修改原来的列表,而sorted()函数会返回一个新的排序后的列表。sort()函数默认是升序排序,而sorted()函数也是默认升序排序。如果想要实现反向排序,则分别可以将sort()函数和sorted()函数的reverse参数设置为True。如果需要自定义排序,则需要使用sorted()函数的key参数来指定比较的元素。

总之,sort()函数和sorted()函数都是Python中常用的排序函数,它们在实现方式和应用场景上有些许不同,根据具体需求选择使用即可。