The Application of Python array is a very important application technology in actual programming. As a Python programmer, you must master all the application skills in this field. Next, we will understand this knowledge through understanding the Python two-dimensional array.
Python does not have an array data structure, but the list is similar to an array, for example:
- a=[0,1,2]
In this case, a [0] = 0, a [1] = 1, a [[2] = 2, but a problem occurs, that is, what if array a is defined as 0 to 999, in this case, a = range (0, 1000) may be used. Or omitted as a = range (1000). If you want to define a with a length of 1000 and the initial value is 0
- a = [0 for x in range(0, 1000)]
The following is the definition of a Python two-dimensional array:
- Python Incremental Backup implementation tips
- Python data conversion code in-depth analysis
- In-depth exploration of the magic of the Python Sequence
- Python for in code Operation Method
- Main functions of the Python Thread class
Directly define a = [[], []. Here we define a two-dimensional array of 2*2 with an initial value of 0.
Indirectly define a = [[0 for x in range (10)] for y in range (10)]. Here we define a two-dimensional array with the initial value of 10*10 as 0.
Later, I found a simpler method to define two-dimensional arrays on the Internet:
B = [[0] * 10] * 10. Define a Python two-dimensional array of 10*10 whose initial value is 0.
Compare with a = [[0 for x in range (10)] for y in range (10)]: print a = B returns True.
However, after B's definition method is used to replace a, the previous programs that can run normally also failed. After careful analysis, the differences are obtained:
When a [0] [0] = 1, only a [0] [0] is 1, and all others are 0.
When B [0] [0] = 1, a [0] [0], a [1] [0], and only a [9, 0] is 1. Therefore, the 10 small one-dimensional data in the large array is all referenced in the same way, that is, pointing to the same address. Therefore, B = [[0] * 10] * 10 does not conform to the two-dimensional array in our general sense.
At the same time, the definition of c = [0] * 10 has the same effect as that of c = [0 for x in range (10, it is estimated that the definition of array c is a multiplication of the value type, while the previous B is a multiplication of the type, because the one-dimensional array is a reference to borrow the value type and reference type in C, ).