本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Python Ternary Operator
Putting a simple if-then statement on one line
是否有一种方法可以在Python中将
Python做"三元"表达式的一个例子:
1 | i = 5 if a > 7 else 0 |
转化为
1 2 3 4 | if a > 7: i = 5 else: i = 0 |
在使用列表理解时,或者有时在返回语句中,这实际上很有用,否则我不确定它在创建可读代码时是否有多大帮助。
在最近的这篇文章中详细讨论了可读性问题,所以在python中使用if-else语句比使用if-else语句更好。
它还包含了完成相同任务的其他各种聪明的(有些模糊的)方法。基于这些帖子,值得一读。
Python的
1 2 3 4 | >>> 'true' if True else 'false' 'true' >>> 'true' if False else 'false' 'false' |
仅用于作为一个值:
1 | x = 3 if a==2 else 0 |
或
1 | return 3 if a==2 else 0 |
有条件表达式:
1 | a if cond else b |
但这是一个表达式,不是一个语句。
在if语句中,如果block只有一个,则
1 2 | if something: somefunc() else: otherfunc() |
但这是不鼓励的形式的问题。