Python?用于赋值的(条件/三值)运算符

2024-06-28 21:38:10 发布

您现在位置:Python中文网/ 问答频道 /正文

C和许多其他语言都有一个conditional (aka ternary)运算符。这允许您根据条件的真实性在两个值之间做出非常简洁的选择,这使得表达式(包括赋值)非常简洁。

我错过了这一点,因为我发现我的代码有很多条件赋值,在Python中有四行:

if condition:
    var = something
else:
    var = something_else

而在C语言中是:

var = condition? something: something_else;

一个文件中有一两次是可以的,但是如果有很多条件赋值,那么行数就会爆炸,最糟糕的是,眼睛会被它们吸引。

我喜欢条件运算符的简洁性,因为它使我认为不具有战略意义的东西不会在浏览代码时分散我的注意力。

那么,在Python中,有没有什么技巧可以用来将赋值放到一行上,以近似于我概述的条件运算符的优点?


Tags: 代码语言if表达式var运算符condition条件
2条回答

Python有这样一个操作符:

variable = something if condition else something_else

或者,尽管不推荐(见@karadoc的评论):

variable = (condition and something) or something_else

在旧的Python代码中,您可能会看到诀窍:

condition and something or something_else

然而,这已经被非常优越的... if ... else ...结构所取代:

something if condition else something_else

相关问题 更多 >