Inventory of advanced usage of Python built-in function sorted()

WBOY
Release: 2023-05-13 10:34:05
forward
1262 people have browsed it

1. Preface

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.

Inventory of advanced usage of Python built-in function sorted()

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.

Inventory of advanced usage of Python built-in function sorted()

2. Basic Usage

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)

Inventory of advanced usage of Python built-in function sorted()

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)

Inventory of advanced usage of Python built-in function sorted()

3. Advanced Usage

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.

Inventory of advanced usage of Python built-in function sorted()

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'))
Copy after login

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.

Inventory of advanced usage of Python built-in function sorted()

What should I do if I want to remove a hero who is older than 28?

Inventory of advanced usage of Python built-in function sorted()

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))
Copy after login

Inventory of advanced usage of Python built-in function sorted()

Extras

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.

Inventory of advanced usage of Python built-in function sorted()

3. Summary

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!

Related labels:
source:51cto.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template