【问题标题】:Write Numeric Manipulation in Python in 1 line [duplicate]在 Python 中用 1 行编写数值操作 [重复]
【发布时间】:2018-12-03 08:22:11
【问题描述】:

我在 Python 中有一个简单的问题,如果它小于 floor,我需要返回一个等于 floor 的值,如果该值大于吊顶,则返回上限。我不确定是否有更简单的方法可以做到这一点。我要做的是:

def floor_ceil(x):
    floor = 0
    ceil = 100
    if x < floor:
       return floor
    elif x > ceil:
       return ceil
    return x

有更简单的方法吗?代码看起来很笨重

【问题讨论】:

  • “如果它小于地板,”...“如果值大于天花板”:根据定义,我认为情况并非如此。
  • 但是从您的函数中,您需要一个剪辑或钳位样式的函数。你目前所拥有的一切都很好。
  • 你可以考虑def floor_ceil(x, floor=0, ceil=100): 让你的函数更通用。
  • 也值得一提numpy.clip

标签: python


【解决方案1】:

您可以重复使用内置的maxmin

def floor_ceil(x):
    return max(0, min(100, x))

【讨论】:

    猜你喜欢
    • 2016-10-21
    • 2020-01-15
    • 2019-04-12
    • 2012-11-26
    • 1970-01-01
    • 2013-01-06
    • 2018-08-29
    • 2020-05-03
    相关资源
    最近更新 更多