【问题标题】:Pythonic way for `return (value == 'ok') ? 'ok' : 'nok' ` [duplicate]`return (value == 'ok') 的 Pythonic 方式? 'ok':'nok'`[重复]
【发布时间】:2012-09-29 03:03:13
【问题描述】:

可能重复:
Ternary conditional operator in Python

我有这个问题,不知道要问谷歌:

(value == 'ok') ? 'ok' : 'not ok'

我的意思是语法:

(expression) ? (return if <expresion> is true) : (return this value if <expresion> is false

【问题讨论】:

  • 请注意,这称为“三元运算符”。
  • 在 C 中,这被称为“三元运算符”,谷歌搜索 python ternary operator 会指出你想去的地方。
  • 我认为投反对票的人认为这是一个微不足道的答案,但如果您不知道要查找的术语,实际上很难找到。 +1
  • @mgilson 正如我所写:我不知道如何向谷歌索要它。我不知道这个语法的名称
  • @WBAR -- 无论如何,我支持 Lattyware,我也不同意反对票 ...

标签: python python-2.7


【解决方案1】:

简单易懂:

'String ok' if value == 'ok' else 'String nok'

这是conditional expression

【讨论】:

  • 也伪装成三元表达式。
  • 虽然“条件表达式”是一个更好的名字。即使在 C 中,“三元运算符”也是一个非常愚蠢的名字;这就像调用+“二元运算符”。
【解决方案2】:

这个案子怎么样:

{True: 'String ok', False: 'String nok'}[value == 'ok']

*不要当真:)

【讨论】:

  • 这与他们添加if else 语法之前的旧方法类似。但我曾经用元组看到它,因为布尔值将评估为 0 或 1:('NOT OK', 'OK')[value=="ok"]
  • @jdi 这仍然是(喘气)代码高尔夫中的流行做法
猜你喜欢
  • 2019-12-07
  • 1970-01-01
  • 2016-06-29
  • 2016-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 1970-01-01
相关资源
最近更新 更多