我如何在Python中压缩if/else语句到一行?
当前回答
有条件表达式:
a if cond else b
但这是一个表达,不是一个陈述。
在if语句中,if(或elif或else)可以与块体写在同一行,如果该块只是像这样:
if something: somefunc()
else: otherfunc()
但出于格式风格的考虑,不鼓励这样做。
其他回答
有条件表达式:
a if cond else b
但这是一个表达,不是一个陈述。
在if语句中,if(或elif或else)可以与块体写在同一行,如果该块只是像这样:
if something: somefunc()
else: otherfunc()
但出于格式风格的考虑,不鼓励这样做。
仅供作为值使用:
x = 3 if a==2 else 0
or
return 3 if a==2 else 0
Python的if可以用作三元运算符:
>>> 'true' if True else 'false'
'true'
>>> 'true' if False else 'false'
'false'
Python处理“三元”表达式的一个例子:
i = 5 if a > 7 else 0
转化为
if a > 7:
i = 5
else:
i = 0
在使用列表推导式时,或者有时在return语句中,这实际上很方便,否则我不确定它对创建可读的代码有多大帮助。
可读性问题在最近的SO问题中已经详细讨论过,用这种方法比在python中使用if-else语句更好。
它还包含了完成相同任务的各种其他聪明(有些令人困惑)的方法。仅仅根据这些帖子就值得一读。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if
- 如何在Python中获得所有直接子目录