V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
sunweiliv2
V2EX  ›  Python

[ Python ] 求大神帮忙,一个函数输入上限和下限,能筛选数据的值。

  •  
  •   sunweiliv2 · 2018-01-07 20:37:20 +08:00 · 2601 次点击
    这是一个创建于 2272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想定义一个函数: 输入上限和下限,能筛选出数据组中的值。

    a 下限,b 上限

    data=[5,6,7,8,9]

    def factor_value(a,b):

    for a,b in data:
    
        if a < data 
    
        elif b > data
    
        return a+b
    

    factor_value(4,10)

    我的思路是 a、b 值遍历 data 后判断大小。 返回的是 if a < data 语法错误。

    本人初学,思路和语法基础比较薄弱。求大神帮忙,写一个做参考,或者给一点思路,小弟感激不尽

    264768502
        1
    264768502  
       2018-01-07 20:59:00 +08:00 via iPad   ❤️ 1
    [d for d in data if a < d < b]
    Nugine
        2
    Nugine  
       2018-01-07 21:14:39 +08:00 via Android   ❤️ 1
    不太明白你的意思,是筛选出数字列表中属于区间(a,b)的数字吗?

    那么可以用列表推导式:[x for x in data if a<x<b]

    匿名函数 lambda a,b,data:[x for x in data if a<x<b]

    写成函数就是
    def filter_data(a,b,data):
    return [x for x in data if a<x<b]

    用高阶函数 filter:
    def filter_data(a,b,data):
    return filter(lambda x:a<x<b,data)
    Kilerd
        3
    Kilerd  
       2018-01-07 22:36:48 +08:00
    lambda a, b, data: filter(lambda x: a<x<b, data)

    最简单的写法,千万不要这么写,会被人打死的。
    IanPeverell
        4
    IanPeverell  
       2018-01-08 01:27:34 +08:00   ❤️ 1
    [d for d in data if a < d < b] 是 python 中一种 List Comprehensions,可以参考 https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions

    这种写法比较 pythonic 一些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2484 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:02 · PVG 00:02 · LAX 09:02 · JFK 12:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.