我刚开始接触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。
我问的是一般语法。
一般三元语法:
value_true if <test> else value_false
另一种方式是:
[value_false, value_true][<test>]
e.g:
count = [0,N+1][count==N]
这将在选择一个分支之前评估两个分支。只计算所选分支:
[lambda: value_false, lambda: value_true][<test>]()
例如:
count = [lambda:0, lambda:N+1][count==N]()
一般三元语法:
value_true if <test> else value_false
另一种方式是:
[value_false, value_true][<test>]
e.g:
count = [0,N+1][count==N]
这将在选择一个分支之前评估两个分支。只计算所选分支:
[lambda: value_false, lambda: value_true][<test>]()
例如:
count = [lambda:0, lambda:N+1][count==N]()