2024-10-04 05:22:58 发布
网友
我知道在Python中可以执行以下操作:
var = value1 if( booleanCheck() ) else value2
我想知道的是,我是否可以有条件地选择将值放入具有类似结构的var中?在
像这样:
在我的例子中,我试图在二叉搜索树中将一个子节点分配到正确的一侧,我知道我可以做一个普通的if块,但我试图挑战自己使用最小空间。在
由于用例是分配给二叉树的正确的一侧,我假设分配目标实际上是某个树节点的属性,通常的代码是
if condition: node.left = value else node.right = value
此代码可以替换为
或者另一种选择
vars(node)["left" if condition else "right"] = value
它可以被这个取代,但它真的不应该。在
理论上你可以这样做,如果两个变量都已经定义好了:
var1, var2 = (value, var2) if booleanCheck() else (var1, value)
但不是说你应该这么做。在
以这种方式使用locals或{}不是很好的形式(容易混淆、不常使用、难以调试、性能差),但是可以这样做:
locals
varname = 'a' if some_condition else 'b' locals()[varname] = value # or globals() print locals()[varname] # or globals()
我认为这里真正的挑战是抵制看似“花哨”或“创造性”的代码,并编写其他人马上就能理解的代码。更不用说你自己了,如果你以后还要再来的话。但值得一提的是,知道什么样的时髦代码(就像在旧奶酪中一样)。在
由于用例是分配给二叉树的正确的一侧,我假设分配目标实际上是某个树节点的属性,通常的代码是
此代码可以替换为
^{pr2}$或者另一种选择
它可以被这个取代,但它真的不应该。在
理论上你可以这样做,如果两个变量都已经定义好了:
但不是说你应该这么做。在
以这种方式使用}不是很好的形式(容易混淆、不常使用、难以调试、性能差),但是可以这样做:
locals
或{我认为这里真正的挑战是抵制看似“花哨”或“创造性”的代码,并编写其他人马上就能理解的代码。更不用说你自己了,如果你以后还要再来的话。但值得一提的是,知道什么样的时髦代码(就像在旧奶酪中一样)。在
相关问题 更多 >
编程相关推荐