A few days ago in the Python diamond exchange group, a fan named [emerson] asked a question about Python sorting. I will share it with you and learn together.
In fact, [Teacher Yu Liang], [Eternity in Budapest] and others have talked a lot here, but it is still a bit confusing for friends who are not very good at basics. hard. However, the built-in function sorted() is still used a lot in practical applications. I will talk about it here separately. I hope that next time friends encounter it, they will not panic.
The built-in function sorted() can be used for sorting. The basic usage is very simple. Take an example, as shown below.
lst = [3, 28, 18, 29, 2, 5, 88]result = sorted(lst)print(result)
Program running After that, you can see that the list is sorted in ascending order from small to large.
If you want it to be sorted in reverse order, it is also very simple, just add a reverse parameter.
lst = [3, 28, 18, 29, 2, 5, 88]result = sorted(lst, reverse=True)print(result)
The list (iterator) we encountered above is a very simple numeric type. If we encounter a more complex iterator and need to sort it, such as the following example , as follows:
lst = [ {"id": 1, "name": "Luban", "age": 18}, {"id": 2, "name": "Master Luban", "age": 26}, {"id": 3, "name": "Master Lu", "age": 23}, {"id": 4, "name": "Di Renjie", "age": 48 }]# Sort heroes according to age, in ascending order
If you want to sort an iterator or iterable object like this, you need to use a custom method to sort it. This can also be done using the built-in function sorted(). The usage of sorted() is as follows.
It has three parameters in total. The first parameter is an iterable object, such as a list, dictionary, set, etc.; the second parameter refers to the sorting rule (sort function), inside sorted(), each element in the iterable object will be passed to the parameter of this function, and sorted according to the result of the function operation; the third parameter is reverse, if it is True, it means reverse order, if it is False, then Indicates positive sequence.
Then for this question, you can use the following code to sort:
sorted(lst, key=lambda x: x.get('age'))
The key is a self-defined anonymous function used to specify the sorting rules. Here, it is taken from the dictionary age, and then sort according to the age size, so the result is as shown in the figure below.
What should I do if I want to remove a hero who is older than 28?
This is an extension, it is also possible Use built-in functions to do it, except that the built-in function used here is filter(). The code is as follows:
list(filter(lambda x: x['age'] >= 28, lst))
Recently, many friends are asking about knowledge points about deep and shallow copying of Python. I compiled a piece of information yesterday and share it with you. I am often asked about it during interview questions, so let’s encourage each other.
Hello everyone, I am a Python advanced user. This article mainly shares the sorting problem of Python's built-in function sorted(), and provides specific analysis and code demonstrations to help fans solve the problem smoothly.
The above is the detailed content of Inventory of advanced usage of Python built-in function sorted(). For more information, please follow other related articles on the PHP Chinese website!