发布网友 发布时间:2022-04-23 03:32
共2个回答
懂视网 时间:2022-05-10 22:22
这篇文章主要介绍了python 内置函数filter的相关资料,需要的朋友可以参考下python 内置函数filter
class filter(object): """ filter(function or None, iterable) --> filter object Return an iterator yielding those items of iterable for which function(item) is true. If function is None, return the items that are true. """
filter(func,iterator)
func:自定义或匿名函数中所得值是布尔值,true将保留函数所取到的值,false则取反。
iterator:可迭代对象。
例:
过滤列表['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test']
只要含有text字符串及将其取出 or 取反。
s.rfind'text'+1
Python3中 rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。
数字中0是false,0以上的整数都是true,所以s.rfind'text'后会有+1,没找到字符及-1+1=0.
# Filter
li = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] # 默认保留函数所取到的值 print(list(filter(lambda s: s.rfind('text') + 1, li))) # 取反,下三个例子是一样的 print(list(filter(lambda s: not s.rfind('text') + 1, li)))
# Noe 自定义函数
l1 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def distinguish(l): nl = [] for s in l: if s.rfind("text") + 1: nl.append(s) return nl print(distinguish(l1))
# Two 自定义高阶函数
l2 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def f(s): return s.rfind('text') + 1 def distinguish(func, array): nl = [] for s in array: if func(s): nl.append(s) return nl print(distinguish(f, l2))
# Three 匿名函数
l3 = ['text_test_text', 'test_text_1', 'text_test_2', '3_test_text', 'test_test'] def distinguish(func, array): nl = [] for s in array: if func(s): nl.append(s) return nl print(distinguish(lambda s: s.rfind('text') + 1, l3))
热心网友 时间:2022-05-10 19:30
filter函数的用法,下面进行举例说明:
例如一个公司,需要找出年销售额超过2000万的城市销售金额,这个利用简单的表达式已无法解决,根据FILTER来实现。
1、销售总额 = sum('销售明细'[销售额])
2、再建一个度量值[大于2000万的城市销售金额]= CALCULATE([销售总额],FILTER(ALL('门店城市'),[销售总额]>20000000))。
3、超过2000万销售额的城市的销售额总计等于451026000,但发现上面明细的两个数字之和并不等于总计,这正是PowerBI中数据模型的特点。
一、Filter新增加的功能包括:
1、新的国际化。
2、应用程序生命周期事件控制。
3、澄清了类的装载规则。
4、新的错误及安全属性。
5、不赞成使用HttpUtils 类。
6、各种有用的方法。
二、一个filter必须实现javax.servlet.Filter的三个方法:
1. void setFilterConfig(FilterConfig config) //设置filter 的配置对象。
2. FilterConfig getFilterConfig() //返回filter的配置对象。
3. void doFilter(ServletRequest req,ServletResponse res,FilterChain chain) //执行filter 的工作。