首页 > 解决方案 > Python中的三元运算符中是否可以进行多个变量赋值?

问题描述

只是出于好奇。我想知道是否可以在 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

感谢您的任何想法!

标签: pythonsyntax

解决方案


Python之禅

虽然问题背后的想法应该得到真正的赞赏和喝彩,以及@Heap Overflow 的聪明和最前沿的解决方案——这似乎是一条危险的旅行之路。

你说得对,我不是“蟒蛇警察”;然而,Python 之禅在这个实现方面不言自明。

显式优于隐式。
简单胜于复杂。
可读性很重要。
应该有一种——最好只有一种——明显的方法来做到这一点。
如果实现很难解释,那是个坏主意。

为了使这篇文章成为一个答案而不是漫无边际,我将参考上面的引用。虽然这个想法肯定很有趣......

Python 中的“这是个坏主意”。


推荐阅读