背景
我们往往会有这样的需求:
a = [1,2,3]
b = len(a) # 把a的长度赋值给变量b
if b > 2: # 使用变量b
print(f'长度大于2, 长度是{b}') # 使用变量b
上面这种实现没问题,但是如果我们想要追求代码的简洁,比如说,我不想要额外一句代码来用变量b来接收a的长度值,而是想要在第一次使用到len(a)
的同时赋值给一个变量b。这种情况就用到了python3.8以后提供的新特性之一:海象运算符
也有人说,上面的len(a)
很简单,那我可以直接使用来进行参与逻辑:
a = [1,2,3]
if len(a)> 2: # 使用变量b
print(f'长度大于2, 长度是{len(a)}') # 使用变量b
这种用法不建议,因为增加了运算所占用的内存和空间
海象运算符 :=
- 作用
是把某个表达式的结果,赋值给一个变量 - 还是上面的例子,进行改造
a = [1,2,3]
# b = len(a) # 把a的长度赋值给变量b
if (b:=len(a)) > 2: # 把a的长度赋值给变量b
print(f'长度大于2, 长度是{b}') # 使用变量b