Python - 列表排序


列表类的 sort() 方法使用字典排序机制按升序或降序重新排列项目。排序是就地的,从某种意义上说,重新排列发生在同一个列表对象中,并且它不返回新对象。

句法

list1.sort(key, reverse)

参数

  • - 应用于列表中每个项目的函数。返回值用于执行排序。选修的

  • 反向- 布尔值。如果设置为 True,则按降序排序。选修的

返回值

该方法返回 None。

实施例1

现在让我们看一些示例来了解如何在 Python 中对列表进行排序 -

list1 = ['physics', 'Biology', 'chemistry', 'maths']
print ("list before sort", list1)
list1.sort()
print ("list after sort : ", list1)

print ("Descending sort")

list2 = [10,16, 9, 24, 5]
print ("list before sort", list2)
list2.sort()
print ("list after sort : ", list2)

它将产生以下输出-

list before sort ['physics', 'Biology', 'chemistry', 'maths']
list after sort: ['Biology', 'chemistry', 'maths', 'physics']
Descending sort
list before sort [10, 16, 9, 24, 5]
list after sort : [5, 9, 10, 16, 24]

实施例2

在此示例中,str.lower() 方法用作 sort() 方法中的关键参数。

list1 = ['Physics', 'biology', 'Biomechanics', 'psychology']
print ("list before sort", list1)
list1.sort(key=str.lower)
print ("list after sort : ", list1)

它将产生以下输出-

list before sort ['Physics', 'biology', 'Biomechanics', 'psychology']
list after sort : ['biology', 'Biomechanics', 'Physics', 'psychology']

实施例3

让我们使用用户定义的函数作为 sort() 方法中的关键参数。myfunction() 使用 % 运算符返回余数,并根据余数完成排序。

def myfunction(x):
   return x%10
list1 = [17, 23, 46, 51, 90]
print ("list before sort", list1)
list1.sort(key=myfunction)
print ("list after sort : ", list1)

它将产生以下输出-

list before sort [17, 23, 46, 51, 90]
list after sort: [90, 51, 23, 46, 17]