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

2018-01-07 20:37:20 +08:00
 sunweiliv2

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

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 语法错误。

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

2625 次点击
所在节点    Python
4 条回复
264768502
2018-01-07 20:59:00 +08:00
[d for d in data if a < d < b]
Nugine
2018-01-07 21:14:39 +08:00
不太明白你的意思,是筛选出数字列表中属于区间(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
2018-01-07 22:36:48 +08:00
lambda a, b, data: filter(lambda x: a<x<b, data)

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

这种写法比较 pythonic 一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX