【问题标题】:How to write a function that filters numbers if they lie within a range如果数字在一个范围内,如何编写一个过滤数字的函数
【发布时间】:2021-07-10 04:27:00
【问题描述】:

我想编写一个函数inRange,它应该返回一个列表,其中包含所有且仅包含l 的元素,其值介于低和高之间。例如,inRange(3, 10, [2, 3, 7, 17, 10, 7, -9]) 返回[3, 7, 10, 7]。我只能使用 map、filter、reduce、list、lambda 来完成这个功能。

这是我当前不起作用的代码:

def inRange(lo, hi, l):
    return list(filter(lambda lo, hi, l: l in range(lo, hi))

print(inRange(10, 20, [10, 14, 16, 17, 20, 21, 23, 12]))

【问题讨论】:

  • return list(filter(lambda n: low < n < hi, l))
  • @joshmeranda 谢谢,只有一个错误,它没有返回 3 或 10,但我用<= 修复了它。

标签: python list lambda


【解决方案1】:

您正在寻找此功能:

def inRange(lo, hi, l):
     return list(filter(lambda i: lo <= i <= hi, l))

print(inRange(10, 20, [10, 14, 16, 17, 20, 21, 23, 12]))

输出:

[10, 14, 16, 17, 20, 12]

参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-12
    相关资源
    最近更新 更多