Python 对列表进行排序
列表类的 sort() 方法使用词典排序机制按升序或降序重新排列项目。排序是就地进行的,意味着重新排列发生在同一列表对象中,它不会返回新对象。
语法
list1.sort(key, reverse)
参数
- 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]