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

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中几种常用的对列表进行排序的方法。根据不同的需求,可以选择适合的方法进行列表排序。