python - 如果数字在一个范围内,如何编写一个过滤数字的函数
问题描述
我想编写一个函数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]))
解决方案
您正在寻找此功能:
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]
参考:
推荐阅读
- sql - Oracle:在包和过程中设置会话参数
- ruby - 测试后 Selenium-Webdriver/RSpec 关闭窗口
- python - sqlite:每次调用函数时调用数据库
- ruby-on-rails - 无法使用 Webpacker 转换特定的第三方 node_modules 脚本
- javascript - 如何更改 QuillJS (react-js) 中的默认标题名称?
- django - 未找到带有参数 '('',)' 的 *view* 的反向操作
- wordpress - 从子文件夹重定向 404
- c# - 将照片上传到 Instagram 会出错
- python - 如何检查 conda development 是否安装了我的项目/包?
- laravel - Laravel注销,点击后退按钮让我回到应用程序,我该如何防止这种情况