背景
我們往往會有這樣的需求:
a = [1,2,3]
b = len(a) # 把a(bǔ)的長度賦值給變量b
if b > 2: # 使用變量b
print(f'長度大于2, 長度是{b}') # 使用變量b
上面這種實現(xiàn)沒問題,但是如果我們想要追求代碼的簡潔,比如說,我不想要額外一句代碼來用變量b來接收a的長度值,而是想要在第一次使用到len(a)
的同時賦值給一個變量b。這種情況就用到了python3.8以后提供的新特性之一:海象運算符
也有人說,上面的len(a)
很簡單,那我可以直接使用來進(jìn)行參與邏輯:
a = [1,2,3]
if len(a)> 2: # 使用變量b
print(f'長度大于2, 長度是{len(a)}') # 使用變量b
這種用法不建議,因為增加了運算所占用的內(nèi)存和空間
海象運算符 :=
- 作用
是把某個表達(dá)式的結(jié)果,賦值給一個變量 - 還是上面的例子,進(jìn)行改造
a = [1,2,3]
# b = len(a) # 把a(bǔ)的長度賦值給變量b
if (b:=len(a)) > 2: # 把a(bǔ)的長度賦值給變量b
print(f'長度大于2, 長度是{b}') # 使用變量b