Python 简明教程
Python - Sort Lists
Sorting Lists in Python
用 Python 对列表进行排序是一种按照既定条件(例如数字顺序或字典顺序)以升序或降序排列列表元素的方法。
Sorting a list in Python is a way to arrange the elements of the list in either ascending or descending order based on a defined criterion, such as numerical or lexicographical order.
这可以通过使用内置的 sorted() 函数或调用列表本身的 sort() 方法来实现,这两种方法都会修改原始列表或根据所用的方法返回一个新的已排序列表。
This can be achieved using the built-in sorted() function or by calling the sort() method on the list itself, both of which modify the original list or return a new sorted list depending on the method used.
Sorting Lists Using sort() Method
python sort() method 用于就地对列表的元素进行排序。这意味着它会修改原始列表,并且不会返回一个新列表。
The python sort() method is used to sort the elements of a list in place. This means that it modifies the original list and does not return a new list.
Syntax
使用 sort() 方法的语法如下 −
The syntax for using the sort() method is as follows −
list_name.sort(key=None, reverse=False)
其中,
Where,
-
list_name is the name of the list to be sorted.
-
key (optional) is a function that defines the sorting criterion. If provided, it is applied to each element of the list for sorting. Default is None.
-
reverse (optional) is a boolean value. If True, the list will be sorted in descending order. If False (default), the list will be sorted in ascending order.
Example of Sorting List in Lexicographical Order
在以下示例中,我们使用 sort() 函数对列表的项按字母数字顺序进行排序 -
In the following example, we are using the sort() function to sort the items of the list alphanumerically −
list1 = ['physics', 'Biology', 'chemistry', 'maths']
print ("list before sort:", list1)
list1.sort()
print ("list after sort : ", list1)
它将生成如下输出:
It will produce the following output −
list before sort: ['physics', 'Biology', 'chemistry', 'maths']
list after sort : ['Biology', 'chemistry', 'maths', 'physics']
Example of Sorting List in Numerical Order
在此,我们使用 sort() 函数对给定的列表按数字顺序进行排序 -
In here, we are using the sort() function to sort the given list in numerical order −
list2 = [10,16, 9, 24, 5]
print ("list before sort", list2)
list2.sort()
print ("list after sort : ", list2)
下面显示了产生的输出:
The output produced is as shown below −
list before sort [10, 16, 9, 24, 5]
list after sort : [5, 9, 10, 16, 24]
Sorting Lists Using sorted() Method
Python 中的 sorted() 函数是一个用于对可迭代对象(如列表、元组或字符串)的元素进行排序的内置函数,并返回一个新的已排序列表,而不会改变原始的可迭代对象。
The sorted() function in Python is a built-in function used to sort the elements of an iterable (such as a list, tuple, or string) and returns a new sorted list, leaving the original iterable unchanged.
Syntax
sorted() 方法的语法如下 -
The syntax for using the sorted() method is as follows −
sorted(iterable, key=None, reverse=False)
其中,
Where,
-
iterable is the iterable (e.g., list, tuple, string) whose elements are to be sorted.
-
key (optional) is a function that defines the sorting criterion. If provided, it is applied to each element of the iterable for sorting. Default is None.
-
reverse (optional) is a boolean value. If True, the iterable will be sorted in descending order. If False (default), the iterable will be sorted in ascending order.
Example
在以下示例中,我们使用 sorted() 函数对数字列表进行排序并检索一个新的已排序列表 -
In the following example, we are using the sorted() function to sort a list of numbers and retrieve a new sorted list −
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
# Sorting in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
以下是上面代码的输出: -
Following is the output of the above code −
[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]
Sorting List Items with Callback Function
在 Python 中,回调函数是指作为另一个函数的参数传递给该函数,并在该函数中调用或执行的函数
In Python, a callback function refers to a function that is passed as an argument to another function and is invoked or called within that function
我们可以使用 sorted() 函数或 Python 中的 sort() 函数,通过回调函数对列表项进行排序。这两个函数都允许我们使用“key”参数指定自定义排序标准,该参数接受回调函数。此回调函数定义了元素的比较和排序方式。
We can sort list items with a callback function by using the sorted() function or sort() function in Python. Both of these functions allows us to specify a custom sorting criterion using the "key" parameter, which accepts a callback function. This callback function defines how the elements should be compared and sorted.
Example Using str.lower() as key Parameter
Python 中的 str.lower() 方法用于将字符串中的所有字符转换为小写。它返回一个新字符串,其中所有字母字符都转换为小写,同时保持非字母字符不变。
The str.lower() method in Python is used to convert all the characters in a string to lowercase. It returns a new string with all alphabetic characters converted to lowercase while leaving non-alphabetic characters unchanged.
在此示例中,我们将 str.lower() 方法作为“key”参数传递给 sort() 函数 -
In this example, we are passing the str.lower() method as an argument to the "key" parameter within the sort() function −
list1 = ['Physics', 'biology', 'Biomechanics', 'psychology']
print ("list before sort", list1)
list1.sort(key=str.lower)
print ("list after sort : ", list1)
它将生成以下 output −
It will produce the following output −
list before sort ['Physics', 'biology', 'Biomechanics', 'psychology']
list after sort : ['biology', 'Biomechanics', 'Physics', 'psychology']
Example Using user-defined Function as key Parameter
我们还可以使用用户定义的 function 作为 sort() 方法中的 key 参数。
We can also use a user-defined function as the key parameter in sort() method.
在此示例中,myfunction() 使用 % 运算符来返回余数,基于余数执行排序 -
In this example, the myfunction() uses % operator to return the remainder, based on which the sorting is performed −
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)
它将生成如下输出:
It will produce the following output −
list before sort [17, 23, 46, 51, 90]
list after sort: [90, 51, 23, 46, 17]