sort()函数和sorted()函数的区别及用法
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中常用的排序函数,它们在实现方式和应用场景上有些许不同,根据具体需求选择使用即可。
