Python函数如何对一个列表进行排序?
发布时间:2023-07-02 19:14:26
Python提供了多种方法可以对列表进行排序。下面介绍几种常用的列表排序方法。
1. 使用列表的sort()方法:
列表的sort()方法可以按照元素的大小顺序对列表进行原地排序,即改变列表自身的顺序。下面是一个示例:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5] lst.sort() print(lst) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9]
2. 使用内建函数sorted():
内建函数sorted()可以对一个列表进行排序,并返回一个新的已排序的列表,而不改变原始列表。下面是一个示例:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5] sorted_lst = sorted(lst) print(sorted_lst) # 输出:[1, 1, 2, 3, 4, 5, 5, 6, 9] print(lst) # 输出:[3, 1, 4, 1, 5, 9, 2, 6, 5],原始列表没有改变
3. 使用列表的sort()方法或sorted()函数的key参数:
sort()方法和sorted()函数都支持一个key参数,可以传入一个函数作为排序依据。这个函数将会应用到每个元素上,根据函数的返回值进行排序。下面是一个使用key参数的示例:
lst = ['apple', 'banana', 'pear', 'kiwi'] sorted_lst = sorted(lst, key=lambda x: len(x)) print(sorted_lst) # 输出:['pear', 'kiwi', 'apple', 'banana'],按照字符串长度排序
4. 使用列表的sort()方法或sorted()函数的reverse参数:
sort()方法和sorted()函数都支持一个reverse参数,默认值为False。当将reverse参数设为True时,会按照降序进行排序。下面是一个示例:
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5] lst.sort(reverse=True) print(lst) # 输出:[9, 6, 5, 5, 4, 3, 2, 1, 1],按照降序排序
5. 使用列表的sort()方法或sorted()函数的cmp参数(仅限Python 2):
在Python 2中,sort()方法和sorted()函数还支持一个cmp参数,可以传入一个比较函数作为排序依据。这个比较函数接收两个参数,并根据它们的关系返回一个负数、零或正数。下面是一个使用cmp参数的示例:
def compare_length(a, b):
if len(a) < len(b):
return -1
elif len(a) == len(b):
return 0
else:
return 1
lst = ['apple', 'banana', 'pear', 'kiwi']
lst.sort(cmp=compare_length)
print(lst) # 输出:['pear', 'kiwi', 'apple', 'banana'],按照字符串长度排序
以上是Python中几种常用的对列表进行排序的方法。根据不同的需求,可以选择适合的方法进行列表排序。
