Python中的sorted函数和sort函数:什么是区别
发布时间:2023-10-18 10:40:24
在Python中,sorted函数和sort方法都用于对数据进行排序,但是它们有一些区别。
1. sorted函数是一个全局函数,可以对iterable对象进行排序,返回一个新的已排序的列表。原始的iterable对象保持不变。而sort方法是列表对象的方法,只能对列表进行排序,没有返回值,会直接修改原始列表。
2. sorted函数可以用于任何可迭代对象,如列表、元组、字符串等,而sort方法只能用于列表。
3. sorted函数的语法是sorted(iterable, key=None, reverse=False),其中iterable是待排序的可迭代对象,key是一个用于确定排序顺序的函数,可选参数,reverse是一个布尔值,用于指定排序顺序。而sort方法的语法是list.sort(key=None, reverse=False),其中key和reverse参数的含义与sorted函数相同。
4. sorted函数使用的是稳定的排序算法(Timsort),而sort方法使用的是不稳定的原地排序算法(双轴快速排序)。
5. sorted函数返回的是一个新列表,不会修改原始的iterable对象,而sort方法会直接修改原始列表。
下面是一些示例来说明sorted函数和sort方法的不同:
# 示例1: sorted函数 numbers = [5, 3, 8, 2, 1] sorted_numbers = sorted(numbers) print(sorted_numbers) # 输出: [1, 2, 3, 5, 8] print(numbers) # 输出: [5, 3, 8, 2, 1] 原始列表不变 # 示例2: sort方法 numbers = [5, 3, 8, 2, 1] numbers.sort() print(numbers) # 输出: [1, 2, 3, 5, 8] 原始列表被修改 # 示例3: sorted函数使用key参数 fruits = ['apple', 'grapefruit', 'banana', 'kiwi'] sorted_fruits = sorted(fruits, key=len) # 根据字符串长度排序 print(sorted_fruits) # 输出: ['kiwi', 'apple', 'banana', 'grapefruit'] # 示例4: sort方法使用key参数 fruits = ['apple', 'grapefruit', 'banana', 'kiwi'] fruits.sort(key=len) print(fruits) # 输出: ['kiwi', 'apple', 'banana', 'grapefruit']
综上所述,sorted函数和sort方法都可以用于排序,但是sorted函数返回一个新的已排序列表,而sort方法直接修改原始列表。你可以根据具体的需求选择使用哪个方法。
