首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python?赋值的(条件/三元)运算符

Python?赋值的(条件/三元)运算符
EN

Stack Overflow用户
提问于 2010-06-22 16:07:31
回答 2查看 84.5K关注 0票数 133

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

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

代码语言:javascript
复制
if condition:
    var = something
else:
    var = something_else

而在C中应该是:

代码语言:javascript
复制
var = condition ? something : something_else;

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

我喜欢条件运算符的简洁性,因为它避免了我认为非战略性的事情在浏览代码时分散我的注意力。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-22 16:10:20

Python有这样一个运算符:

代码语言:javascript
复制
variable = something if condition else something_else

或者,尽管不推荐这样做(请参阅karadoc's comment):

代码语言:javascript
复制
variable = (condition and something) or something_else
票数 225
EN

Stack Overflow用户

发布于 2010-06-22 16:12:21

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

代码语言:javascript
复制
condition and something or something_else

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

代码语言:javascript
复制
something if condition else something_else
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3091316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档