目录

Python - 列表排序


按字母数字顺序对列表进行排序

列表对象有一个 sort()默认情况下,按字母数字升序对列表进行排序的方法:

示例

按字母顺序对列表进行排序:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort()
print(thislist)
亲自试一试 »

示例

按数字对列表进行排序:

thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
亲自试一试 »

降序排序

要降序排序,请使用关键字参数reverse = True:

示例

对列表进行降序排序:

thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
亲自试一试 »

示例

对列表进行降序排序:

thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
亲自试一试 »


自定义排序功能

您还可以使用关键字参数自定义您自己的函数key = function

该函数将返回一个数字,用于对列表进行排序(最小的数字在前):

示例

根据数字与 50 的接近程度对列表进行排序:

def myfunc(n):
  return abs(n - 50)

thislist = [100, 50, 65, 82, 23]
thislist.sort(key = myfunc)
print(thislist)
亲自试一试 »

不区分大小写排序

默认情况下sort()方法区分大小写,导致所有大写字母都排在小写字母之前:

示例

区分大小写的排序可能会产生意想不到的结果:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
亲自试一试 »

幸运的是,在对列表进行排序时,我们可以使用内置函数作为关键函数。

因此,如果您想要一个不区分大小写的排序函数,请使用 str.lower 作为关键函数:

示例

对列表执行不区分大小写的排序:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key = str.lower)
print(thislist)
亲自试一试 »

相反的顺序

如果您想要反转列表的顺序(无论字母表是什么)怎么办?

这个reverse()方法反转元素的当前排序顺序。

示例

反转列表项的顺序:

thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)
亲自试一试 »