^=, -= and += symbols in Python

前端 未结 2 1632
清歌不尽
清歌不尽 2021-02-01 06:46

I am quite experienced with Python, but recently, when I was looking at the solutions for the codility sample tests I encountered the operators -=, +=,

相关标签:
2条回答
  • 2021-02-01 07:00

    As almost any modern language, python has Assignment Operators so they can use them every time you want to assign a value to a variable after doing some arithmetic or logical operation, both (assignment and operation)are expressed compact way in one statement....

    0 讨论(0)
  • 2021-02-01 07:04

    When you compute X = X + Y you are actually returning the sum of X and Y into a new variable, which, in your example, overwrites the previous value of X. When you use an assignment operator in the form of X += 1, the value 1 is directly summed on the current value of X, without returning the result in a new variable. Take a look at the code below:

    >>> V = np.arange(10)
    >>> view = V[3:]        # view is just a subspace (reference) of the V array
    >>> print(V);print(view)
    [0 1 2 3 4 5 6 7 8 9]
    [3 4 5 6 7 8 9] 
    >>> view = view + 3     # add view to a constant in a new variable 
    >>> print(V);print(view)
    [0 1 2 3 4 5 6 7 8 9]
    [ 6  7  8  9 10 11 12]
    >>> view = V[3:]
    >>> view += 3           # here you actually modify the value of V
    >>> print(V);print(view)
    [ 0  1  2  6  7  8  9 10 11 12]
    [ 6  7  8  9 10 11 12]
    

    You can also look for the documentation of numpy.ndarray.base to check if an array is actually a reference of another array.

    0 讨论(0)
提交回复
热议问题