合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
python中的三目运算符写法如下: ~~~python x=var1 if con==True else var2 ~~~ 即当`con`为真时讲`var1`赋值给`x`,否则将`var2`赋值给`x`。 其中`var1`一定会被赋值给`x`,然后解释器判断条件是否为真再决定是不是要用`var2`的值来覆盖当前`x`的值。**这意味着`var2`(可能是表达式)在`con`为`False`的情况下不会被计算。** * * * * * 同样的功能我们也可以使用`numpy`的`where`函数完成。使用方法如下: ~~~python x=numpy.where(con,var1,var2) ~~~ 这里要求`con`,`var1`,`var2`是维度完全相同的矩阵,当对应位置的`con`为真时,将`var1`的值赋值给`x`的对应位置,否则将`var2`对应位置的值赋值给`x`。与内置的三目运算符的区别是,**`var1`,`var2`都一定会被计算。** numpy的实例如下: ~~~python >>> import numpy as np >>> con=[[1,0],[0,1]] >>> var1=[[1,2],[3,4]] >>> var2=[[5,6],[7,8]] >>> x=np.where(con,var1,var2) >>> x array([[1, 6], [7, 4]]) ~~~