How to condense if/else into one line in Python?

Possible Duplicate:
Python Ternary Operator
Putting a simple if-then statement on one line

Is there a way to compress an if/else statement to one line in Python? I oftentimes see all sorts of shortcuts and suspect it can apply here too.


An example of Python's way of doing "ternary" expressions:

i = 5 if a > 7 else 0

translates into

if a > 7:
   i = 5
else:
   i = 0

This actually comes in handy when using list comprehensions, or sometimes in return statements, otherwise I'm not sure it helps that much in creating readable code.

The readability issue was discussed at length in this recent SO question better way than using if-else statement in python.

It also contains various other clever (and somewhat obfuscated) ways to accomplish the same task. It's worth a read just based on those posts.


Python的if可以用作三元运算符:

>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'

Only for using as a value:

x = 3 if a==2 else 0

or

return 3 if a==2 else 0
链接地址: http://www.djcxy.com/p/7386.html

上一篇: Python如果

下一篇: 如何将if / else压缩成Python中的一行?