只是出于好奇。我想知道是否可以在Python中使用三元运算符进行多次赋值。我正在考虑这样的事情
rval = m if (fl*fm) < 0 else lval = m
另一方面,我想知道为什么不能像上面那样编写代码。为什么不以这种方式实现语法呢? (抱歉,如果这个问题太元)
编辑:
澄清一下。我只是写了一些二分函数 https://en.wikipedia.org/wiki/Bisection_method :
while(n_iterations < n_iters_max):
m = (lival + rival)/2.0
fm = f(m)
if (fl*fm) < 0:
rival = m
else:
lival = m
if np.abs(rival-lival) < ival_size:
break
n_iterations+=1
感谢您的任何想法!
最佳答案
你可以这样做:
(rval := m) if (fl*fm) < 0 else (lval := m)
但是使用 if-else 语句的正常方式更清晰(至少现在,当我们对 :=
运算符还很陌生时)并且更合适(因为您在此处分配,这是一个正常的语句比具有副作用的表达式更好)。
关于python - Python 中的三元运算符中的多个变量赋值可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60178848/