我是否正确地认为我不能在Python的一行中添加if语句和相应的else语句?
NB:
variable = value1 if condition else value2
不是两个陈述。它是一个可以取两个表达式之一的值的语句。
我想做点什么
if condition a=value1 else b=value2
我认为这需要在Python中使用完整的if-else吗?像
if condition:
a=value1
else:
b=value2
注意(这是定义什么是语句以及什么是表达式所固有的,每个程序员都应该熟悉它),因为我指的是两个不同的变量,上面与
完全不同if condition:
a=value1
else:
a=value2
我当然可以简单地使用条件表达式
a = value1 if condition else value2
的重复
答案 0 :(得分:2)
my_items = {}
my_items["a" if condition else "b"] = value
我认为会更好......
但你可以做到
globals()["a" if condition else "b"] = value
这将完全符合你的要求(虽然一般来说这是不赞成的)
如果你想真正做到可以做到
eval("a=value1" if condition else "b=value2")
但我永远不会建议实际做这样的事情
说实话,我很难想到你真正想要的任何有效用例if condition:
a = value1
else:
b = value2
答案 1 :(得分:2)
Python要求你将if和你的其他行放在不同的行上,因为如果不这样做会使你的代码难以阅读,并且很容易编写令人不快的不可读的代码。
使用此功能,您的代码不太可能更好。
相反,请考虑使用函数为代码提供更有意义的方面,通过返回元组,您可以同时更改a
和b
。
答案 2 :(得分:1)
实际上不会推荐它,但你也可以使用元组解包:
a,b = (value1 if condition else a), (value2 if not condition else b)