可能的重复: Python三元操作符
我刚刚开始接触Python,我非常喜欢其语法的简洁性。但是,有没有一种更简单的方法来写一个if
-then
-else
语句,使其适合在一行中出现?
比如说。
if count == N:
count = 0
else:
count = N + 1
有什么更简单的写法吗?我的意思是,在Objective-C中我会写成这样。
count = count == N ? 0 : count + 1;
在Python中是否有类似的东西?
更新
我知道在这种情况下,我可以使用count == (count + 1) % N
。
我想问的是一般的语法。
此外,你仍然可以使用"普通"。
if
语法,并用冒号将其合并为一行。
if i > 3: print("We are done.")
或
field_plural = None
if field_plural is not None: print("insert into testtable(plural) '{0}'".format(field_plural))
count = 0 if count == N else N+1
- 的三元运算符。虽然我说你的解决方案比这更有可读性。
一般的三元句法。
value_true if <test> else value_false
另一种方式可以是。
[value_false, value_true][<test>]
例如
count = [0,N+1][count==N]
这在选择一个分支之前会评估两个分支。如果只评估所选分支,则
[lambda: value_false, lambda: value_true][<test>]()
例如。
count = [lambda:0, lambda:N+1][count==N]()