海象运算符语法为(variable_name := expression or value),看起来很像是一个赋值运算符,但是其实也可以当做赋值运算符去看。
因为这个语法的作用是左边是一个变量的名称,后面是一个表达式或者值。
作用就是在进行条件表达式或者是列表推导式的代码编写时将代码进行简写,把声明变量值的代码放在这个运算符中去实现。
用法
(1)海象运算符可以用在if/else之中进行条件判断时为起止条件进行赋值,具体实例如下:
if a := 15 > 10:
print('hello, world!')
#不用海象运算符相当于
a=15
if a > 10:
print('hello, world!')
在这个示例之中原本应该是先声明a = 15,然后再编写条件a > 10的,但是海象运算符就简化了这一句代码。
(2)或者是用在列表推导式上也很不错,因为列表推导式本身也就是迭代列表的简写方式,示例如下:
nums = [1, 2, 3, 4]
def f(x):
print('运行了函数f(x)1次。')
return x ** 0.5
print([n for i in nums if (n := f(i)) > 5])
#不用海象运算符相当于
nums = [1, 2, 3, 4]
def f(x):
print('运行了函数f(x)1次。')
return x ** 0.5
print([f(i) for i in nums if f(i) > 5])
#不过这里f(i)调用了两次