gpt4 book ai didi

Python 赋值给条件 LHS

转载 作者:行者123 更新时间:2023-11-30 22:57:01 27 4
gpt4 key购买 nike

我知道

a = val1 if condition else val2

但是有没有办法做类似的事情

a if condition else b = val

抛出一个SyntaxError(我想这是可以理解的)

我会使用条件,

if condition:
a = val
else:
b = val

但我讨厌在我的程序中出现两次相同的代码(这里是右侧)(在我的真实代码中,val是一个不平凡的表达式)。我知道我可以创建一个虚拟变量来保存该部分,但这似乎不惯用。

我也想到要做一个元组

ba = (b,a)
ba[bool(condition)] = val
b, a = ba

但这似乎也很不惯用。

还有其他我没有想到的方法吗?

最佳答案

您可以使用函数来封装逻辑并将其解压回您感兴趣的变量:

def decider(x, y, condition, val):
if condition:
return val, y
return x, val

a, b = decider(a, b, cond, value)

关于Python 赋值给条件 LHS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36852729/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com