首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python: filter 函数

API

filter(function, sequence)

对 sequence(list或string)进行 过滤,返回 筛选结果

python2 与 python3 中 filter 的不同

python2 中, filter 返回 的是 list型python3 中, filter 返回 的是 filter object(filter对象)。需要再加上 转list 操作才能达到 python2下的效果。

代码语言:javascript
复制
string = 'abcd'
xs = filter(lambda x : x != 'b', string)
print(xs)    # <filter object at 0x7f3888cd67b8>
print(list(xs))    # ['a', 'c', 'd']

Test (基于python2)

对list过滤

代码语言:javascript
复制
f = lambda x : x % 2 != 0
list = [1, 2, 3, 4]
print filter(f, list)

打印结果:

代码语言:javascript
复制
[1, 3]

对string过滤

代码语言:javascript
复制
string = 'abcd'
print filter(lambda x : x != 'b', string)

打印结果:

代码语言:javascript
复制
acd

与 count函数 结合

筛选出含有 ‘ang’ 的 元素项。 count 函数 计算 ‘ang’ 的 出现次数,只要 不是0都会 返回

代码语言:javascript
复制
s = ['Beijing!', 'Shanghai', 'Guangzhou']
print filter(lambda x:x.count('ang'),s)

打印结果:

代码语言:javascript
复制
['Shanghai', 'Guangzhou']

也可用以下代码:

代码语言:javascript
复制
s = ['Beijing!', 'Shanghai', 'Guangzhou']
print [i for i in s if i.count('ang')]

打印结果:

代码语言:javascript
复制
['Shanghai', 'Guangzhou']


下一篇
举报
领券