Python中如何像写列表推导式一样编写单行if-else语句?
解答
可以实现,不需要转换为列表就能直接将你给出的分支语句改写为单行,核心用到Python的三元条件表达式语法。
你给出的代码可以直接改写为以下形式:
import random print("I am going out") if random.random() < 0.5 else print("I am staying home")
补充说明
- 三元条件表达式的基础语法为
返回值1 if 判断条件 else 返回值2,只要条件判断两侧的执行逻辑是合法的Python表达式就可以直接使用,不需要借助列表推导式、生成器等结构,也不会生成额外的列表对象。 - 你这个场景里
print在Python3中属于函数调用,是合法的表达式,所以可以直接放在三元表达式的两侧。如果后续遇到需要执行赋值类语句的场景,Python3.8及以上版本可以搭配海象运算符实现单行编写,更低版本则不支持。
内容的提问来源于stack exchange,提问作者stochastic learner
相关产品推荐
相关产品推荐

