1. 程式人生 > >Python中的增強賦值語句及其作用

Python中的增強賦值語句及其作用

Python中的增強賦值語句,從C中借鑑而來,從Python 2.0開始出現。

普通賦值語句

>>> X = 100
>>> Y = 200
>>> X = X + Y
>>> X
300
>>> a = "Hello"
>>> b = "World"
>>> a = a + b
>>> a
HelloWorld

增強賦值語句

>>> X = 100
>>> Y = 200
>>> X += Y
>>> X
300
>>> a = "Hello"
>>> b = "World"
>>> a += b
>>> a
HelloWorld

常見增強賦值語句

>>> X += Y           # 等價於 X = X + Y
>>> X -= Y           # 等價於 X = X - Y
>>> X &= Y           # 等價於 X = X & Y
>>> X |= Y           # 等價於 X = X | Y
>>> X *= Y           # 等價於 X = X * Y
>>> X /= Y           # 等價於 X = X / Y
>>> X //=Y           # 等價於 X = X // Y
>>> X ^= Y           # 等價於 X = X ^ Y
>>> X >>= Y          # 等價於 X = X >> Y
>>> X %= Y           # 等價於 X = X % Y
>>> X **= Y          # 等價於 X = X ** Y  

增強賦值語句的優點

  • 可以減少程式設計師輸入
  • 左側只需計算一次。在X += Y中,X可以是複雜的物件表示式。在增強形式中,則只需要計算一次,速度更快!
  • 優化技術會自動選擇。對於支援原處修改的物件而言,增強形式會自動執行原處修改運算,而不是拷貝,速度更快!
>>> L = [1, 2]
>>> M = L                       # M,L此時為同一個物件
>>> L = L + [3, 4]              # 執行此操作時,建立了一個新物件
>>> L, M                        # 此時M,L的物件及值都不同
([1, 2, 3, 4], [1, 2])
>>>
>>> L = [1, 2]
>>> M = L                       # M,L此時為同一個物件
>>> L += [3, 4]                 # 執行此操作時,在原處修改,相當於L.append()操作
>>> L,M                         # 還是同一個物件,速度比普通賦值要快!
([1, 2, 3, 4], [1, 2, 3, 4])
>>>