【问题标题】:Python ternary expressionPython 三元表达式
【发布时间】:2017-12-24 00:15:08
【问题描述】:

所以这是一个使用 Java 中的 1 行三元表达式的简单对象创建和赋值。

Interval newInterval = previous.end <= current.end ? new Interval(previous.start, current.end : new Interval(previous.start, previous.end)

python 的等价物是,

new_interval = Interval(previous.start, current.end) if previous.end <= current.end else Interval(previous.start, previous.end)

我的问题是有更多pythonic 的方式来写这个吗?

【问题讨论】:

  • new_interval = Interval(previous.start, current.end if previous.end &lt;= current.end else previous.end) 对我来说似乎更合理(两种语言)。

标签: python ternary-operator


【解决方案1】:

这更像是 Pythonic:

start = previous.start
end = max(current.end, previous.end)
new_interval = Interval(start, end)

【讨论】:

    【解决方案2】:

    我更想要的形式大概是

    new_interval = Interval(previous.start, max(current.end, previous.end))
    

    【讨论】:

      猜你喜欢
      • 2017-11-22
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 2014-12-25
      • 2015-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多