Python函数:如何使用sort()和sorted()函数进行列表排序?
在 Python 中,排序是一种经常被使用的操作,因为许多数据集都需要进行排序。为了满足不同的需求,Python 提供了两个内置函数 sort()和 sorted() 来对列表进行排序。本文将介绍这两个函数的使用方法和区别。
一、sort()函数
sort() 函数是用于对列表进行原地排序的方法,即对列表进行修改,不会返回一个新的列表。调用 sort() 方法会改变原始列表的顺序。这里所说的原地排序是指在原始列表上进行排序,而不是创建一个新的排序后的列表进行排序。
语法:
list.sort(reverse=True|False, key=myFunc)
参数:
- reverse:可选参数,如果值为 True,则降序排序;如果省略或为 False,则升序排序。默认为 False。
- key:可选参数,用于将每个元素转换为一个值进行排序。默认为None,表示按照列表中的原始元素排序。
示例:
#压缩氦、氢、氮气的差分曲线,按照从大到小的顺序排序,并输出 difff = [30, 7, 20, 10, 5, 6, 8, 19, 3] difff.sort(reverse=True) print(difff) #=> [30, 20, 19, 10, 8, 7, 6, 5, 3]
二、sorted()函数
sorted() 函数是用于对列表进行排序的内置方法,sorted() 函数将不会改变原始列表,它会返回一个新的排序列表。
语法:
sorted(iterable, key=None, reverse=False)
参数:
- iterable:必需,表示要排序的可迭代对象,如列表、元组、字符串等。
- key:可选参数,用于指定进行排序的函数,它以每个元素为输入并返回用于排序的值。默认值为 None。
- reverse:可选参数,如果为 True,则表示以降序进行排序,否则为升序排序。默认值为 False。
示例:
#将字典按照值进行排序,输出排序后的字典
d = {"cat": 10, "dog": 1, "elephant": 4, "bird": 2}
sorted_d = sorted(d.items(), key=lambda x: x[1])
print(sorted_d) #=> [('dog', 1), ('bird', 2), ('elephant', 4), ('cat', 10)]
三、sort()和sorted()的区别
从功能上来讲,这两个函数都可以排序列表,不同之处在于 sort() 函数是在原始列表上进行排序,不会返回新的列表,而 sorted() 函数则是创建一个新的已排序的列表,并将其返回。
此外,这两个函数的参数也有所区别。sort() 只有两个可选参数:reverse 和 key,而 sorted() 可以接受多个参数。由于 sorted() 函数返回的是一个新列表,因此需要将其分配给另一个变量以使用,而 sort() 则不需要。
总结:
Python 内置的 sort() 和 sorted() 函数提供了在 Python 中对列表进行排序的方式。其中,sort() 函数在原始列表上进行排序,sorted() 函数则会创建一个新的已排序的列表并返回。这两个函数各有优劣,根据不同的需求使用不同的函数。
