Python压缩if / else到一行?
可能重复:
Python三元运算符
把一个简单的if-then语句放在一行上
有没有办法在Python中将if / else语句压缩到一行? 我经常看到各种各样的捷径,并且怀疑它也适用于这里。
Python做“三元”expression式的一个例子:
i = 5 if a > 7 else 0
翻译成
if a > 7: i = 5 else: i = 0
当使用列表parsing,或者有时在返回语句中,这实际上派上用场了,否则我不确定它在创build可读代码方面有多大的帮助。
可读性问题在这个最近的SO问题中比在Python中使用if-else语句更好地讨论了。
它还包含其他各种巧妙 (有些混淆 )的方式来完成相同的任务。 这是值得阅读只是基于这些职位。
Python的if
可以用作三元运算符 :
>>> 'true' if True else 'false' 'true' >>> 'true' if False else 'false' 'false'
仅用作值:
x = 3 if a==2 else 0
要么
return 3 if a==2 else 0
有条件expression式:
a if cond else b
但这是一个expression,而不是一个声明。
在if语句中, if
(或者elif
或者else
)可以和块体一样写在同一行上,如果块只是一个像:
if something: somefunc() else: otherfunc()
但这是一个格式化的风格,这是不鼓励的。