


Detailed explanation of examples of connectors (+, +=) in Python
Preface
This article introduces the connectors (+, +=) in Python to you in detail through the problems found in a piece of sample code. Without further ado, let’s take a look at the detailed introduction. Bar.
Suppose there is the following piece of code:
1 2 3 4 5 6 7 8 9 10 |
|
The meaning of this code is that there are three lists, and it is necessary to fill 0 at the end of the list whose length is not 10, so that The length becomes 10.
The output is as follows:
1 2 3 |
|
There is no problem here, everything is normal. However, now the requirements have changed and we need to pad the front of the list with a length other than 10 with zeros.
Then, we try to make the following changes:
1 2 3 4 5 6 7 8 9 10 |
|
Look at the output directly:
1 2 3 |
|
The result is not That's what we imagined. If you don't see the problem, keep reading. Of course, if you have already seen the clues, there is no need to waste time here.
According to our inherent thinking, the above method is feasible, such as the following example:
1 2 3 4 |
|
Such an operation allows the list to get the changes we expect.
But what if we add a few more steps:
1 2 3 4 5 6 7 8 |
|
At this point, have you seen the problem? As you can see from the output of the id() method, the "l" at the back is no longer the "l" at the front.
Look at the following example again:
1 2 3 4 5 6 7 8 |
|
When using +=, "l" is preceded and followed by one. At this point, we should understand the fact that the example at the beginning of the article is not inexplicable, but has a reason.
Don’t worry, let’s look at the example again:
1 2 3 4 5 6 7 8 |
|
As you can see, when we replace the list with a tuple, the result changes again.
So what if we use the + operation on tuples:
1 2 3 4 5 6 7 8 |
|
This is the same as the list result, no different.
So, let’s take a look at the string:
1 2 3 4 5 6 7 8 |
|
The result is like a tuple, "s" is using += to concatenate a string Later, it was reassigned a value, and it was no longer the previous variable. Reflected in the memory, "s" has been opened up an additional storage space to store the value.
Here, the Python connectors we are going to talk about are + and +=. It should be noted that these two symbols have different meanings in Python. One is the addition operation used in mathematics, and the other is the splicing function used on sequence types. However, when used as an addition operator, it also follows the usage rules discussed in this article. Because discussing these two symbols is essentially discussing Python's immutable and mutable, that is, variable types and immutable types. For mutable types, we can modify the variable in place, which means that its storage space is readable and writable, such as a list; for immutable types, its storage space is read-only. , it cannot be modified. If you need to perform certain operations on the immutable type to get a new result, you need to create a new storage space to store the newly generated result.
From the examples listed above, we can draw the following conclusions:
For variable types:
+: represents the connection operation, the result of which will create a new object.
+=: Represents the append operation, that is, the in-place operation, which appends the content of another object to the object in place.
For immutable types: + and += both represent connection or summation operations. There is no difference between the two. The result of the operation will produce a new object.
Let’s analyze the example at the beginning of the article. Since for iteration is equivalent to assignment, for the sake of simplicity, we only analyze a, as shown below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
Here, t is a reference to a, which is equivalent to the item in the example at the beginning of the article. Using += to operate on t actually operates on a, and += operates in place, so when t is changed, a also changes; if + is used to operate on t, and the result is assigned to t, then At this time, t no longer points to a, but points to [0]*6 + t, so a has not been changed.
Summary
The above is the entire content of this article. What is discussed here is just a simple issue, but I have spent such a long time talking about this issue, so I want to say The thing is, if you don't fully understand these small issues, they may cause you trouble during the programming process.
For more detailed examples of connectors (+, +=) in Python, please pay attention to the PHP Chinese website for related articles!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Python excels in gaming and GUI development. 1) Game development uses Pygame, providing drawing, audio and other functions, which are suitable for creating 2D games. 2) GUI development can choose Tkinter or PyQt. Tkinter is simple and easy to use, PyQt has rich functions and is suitable for professional development.

Python is easier to learn and use, while C is more powerful but complex. 1. Python syntax is concise and suitable for beginners. Dynamic typing and automatic memory management make it easy to use, but may cause runtime errors. 2.C provides low-level control and advanced features, suitable for high-performance applications, but has a high learning threshold and requires manual memory and type safety management.

To maximize the efficiency of learning Python in a limited time, you can use Python's datetime, time, and schedule modules. 1. The datetime module is used to record and plan learning time. 2. The time module helps to set study and rest time. 3. The schedule module automatically arranges weekly learning tasks.

Python is better than C in development efficiency, but C is higher in execution performance. 1. Python's concise syntax and rich libraries improve development efficiency. 2.C's compilation-type characteristics and hardware control improve execution performance. When making a choice, you need to weigh the development speed and execution efficiency based on project needs.

Pythonlistsarepartofthestandardlibrary,whilearraysarenot.Listsarebuilt-in,versatile,andusedforstoringcollections,whereasarraysareprovidedbythearraymoduleandlesscommonlyusedduetolimitedfunctionality.

Python excels in automation, scripting, and task management. 1) Automation: File backup is realized through standard libraries such as os and shutil. 2) Script writing: Use the psutil library to monitor system resources. 3) Task management: Use the schedule library to schedule tasks. Python's ease of use and rich library support makes it the preferred tool in these areas.

Is it enough to learn Python for two hours a day? It depends on your goals and learning methods. 1) Develop a clear learning plan, 2) Select appropriate learning resources and methods, 3) Practice and review and consolidate hands-on practice and review and consolidate, and you can gradually master the basic knowledge and advanced functions of Python during this period.

Python and C each have their own advantages, and the choice should be based on project requirements. 1) Python is suitable for rapid development and data processing due to its concise syntax and dynamic typing. 2)C is suitable for high performance and system programming due to its static typing and manual memory management.
