Home > Article > Backend Development > List sorting: Detailed explanation of Python's sort, sorted and numpy.argsort methods
In Python programming, it is often necessary to sort lists or arrays. Python provides a variety of sorting methods, including sort, sorted, numpy.argsort, etc. This article will introduce in detail the usage and precautions of these sorting methods.
1. Sort method
The sort method is a built-in method in Python lists. It can sort the list in place (that is, it returns a value but does not generate a new sort object). It does not require additional import libraries. . The sort method has two parameters: key and reverse. key indicates the key used when sorting, and reverse indicates whether to perform reverse sorting. For example:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] my_list.sort() print(my_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] my_list.sort(reverse=True) print(my_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] my_list = ["apple", "banana", "cherry", "orange"] my_list.sort(key=lambda x: len(x)) print(my_list) # 输出 ["apple", "cherry", "orange", "banana"]
In the above examples, the first example sorts the list of integers, the second example sorts the list in reverse order, and the third example uses lambda expression to sort the list of strings by length.
It should be noted that the sort method is sorting in place, which will change the order of the original list. The return value is None, so you cannot directly perform operations on the sorted list. You need to create a list before sorting. Make a copy or use another method to store the sorted results.
2. Sorted function
The sorted function is a built-in function in Python that can sort lists, tuples, strings, etc., and return a new sorted object without changing the original input object. The parameters of the sorted function are the same as the sort method, including key and reverse. For example:
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] new_list = sorted(my_list) print(new_list) # 输出 [1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9] new_list = sorted(my_list, reverse=True) print(new_list) # 输出 [9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1] my_list = ["apple", "banana", "cherry", "orange"] new_list = sorted(my_list, key=lambda x: len(x)) print(new_list) # 输出 ["apple", "cherry", "orange", "banana"]
The return value of the sorted function can be a list, tuple, string, etc. The type of the return result is determined based on the input type.
3. numpy.argsort method
The numpy.argsort method is a method in numpy, mainly used to sort numpy arrays. The argsort method returns the sorted subscripts. The parameters of the numpy.argsort method are also key and reverse. For example:
import numpy as np my_array = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]) sort_index = np.argsort(my_array) print(sort_index) # 输出 [1 3 6 0 9 2 4 8 7 5 10] sort_index = np.argsort(-my_array) print(sort_index) # 输出 [5 7 4 2 0 3 6 8 9 1 10] my_array = np.array(["apple", "banana", "cherry", "orange"]) sort_index = np.argsort([len(x) for x in my_array]) print(sort_index) # 输出 [0 2 3 1]
In the above examples, the first example sorts the numpy array in ascending order and returns the sorted subscripts. In the second example, to sort in descending order, you need to invert the array. The third example sorts an array of strings by length.
It should be noted that the numpy.argsort method returns a list of subscripts, and you need to use the subscripts to obtain the sorting results.
Summary:
This article mainly introduces the sort, sorted and numpy.argsort methods in Python, which can be used to sort lists and arrays in Python. The sort method and sorted function can sort Python's built-in objects, and the numpy.argsort method is a method in numpy, mainly used to sort numpy arrays. These methods can use parameters such as key and reverse to control the sorting behavior. Different sorting methods should be selected according to needs.
The above is the detailed content of List sorting: Detailed explanation of Python's sort, sorted and numpy.argsort methods. For more information, please follow other related articles on the PHP Chinese website!