Python内置函数之filter

一:filter

Help on built-in function filter in module __builtin__:
 
filter(...)
    filter(function or None, sequence) -> list, tuple, or string
    
    Return those items of sequence for which function(item) is true.  If
    function is None, return the items that are true.  If sequence is a tuple
    or string, return the same type, else return a list.

说明:

filter(func,seq)

调用一个布尔函数func来迭代遍历每个seq中的元素;返回一个使func返回值为True的元素的序列

例子:

>>> list1=[1,2,3]        --定义一个列表
>>> filter(None,list1)   --如果function 为 None ,那么返回序列全部
[1, 2, 3]
>>> 
>>> list2=[1,2,3,4]
>>> def f1(x):  --对于序列X中的每个item依次进行判断,如果满足某个条件就返回真,不满足就返回假
...   if x>2:
...     return True
...   else:
...     return False
... 
>>> filter(f1,list2)  --返回在函数f1中满足条件的item,如果序列是元祖,那么返回的结果也是元祖,字符串和列表同理
[3, 4]
>>>

实际的案例

比如要求输出/etc/passwd密码文件中所有以/bin/bash 结尾的用户到一个列表中

程序编写思考:可以利用readlines函数将/etc/passwd文件输出到一个列表中,然后写一个布尔函数判断如果列表中的子串是以/bin/bash结尾的那么就返回真,如果不是那么就返回假,再利用filter函数进行过滤,即可达到要求

PYTHON代码如下

#!/usr/bin/env python
# coding:utf-8
# @Filename: checkpwd.pt
 
def show_file(file):
    ‘‘‘Open file and returns the file content‘‘‘
    
    fp = open(file)
    contentList = fp.readlines()
    fp.close()
    return contentList
 
 
def filter_line(listArg):
    ‘‘‘Filter out the lines that end in /bin/bash in the /etc/passwd‘‘‘
    
    if listArg.strip(‘\n‘).endswith(‘/bin/bash‘):
        return True
    else:
        return False
        
def show_user(filterArg):
    ‘‘‘Append the user to list‘‘‘
    
    showList=[]
    for i in filterArg:
        showList.append(i[:i.index(‘:‘)])
    print showList
    
if __name__ == ‘__main__‘:
    file = ‘/etc/passwd‘
    clist = show_file(file)
    flist = filter(filter_line,clist)
    show_user(flist)

执行结果如下图

时间: 2024-10-18 21:12:39

Python内置函数之filter的相关文章

Python内置函数之filter map reduce

Python内置函数之filter map reduce 2013-06-04 Posted by yeho Python内置了一些非常有趣.有用的函数,如:filter.map.reduce,都是对一个集合进行处理,filter很容易理解用于过滤,map用于映射,reduce用于归并. 是Python列表方法的三架马车.1. filter函数的功能相当于过滤器.调用一个布尔函数bool_func来迭代遍历每个seq中的元素:返回一个使bool_seq返回值为true的元素的序列. >>>

python 内置函数 map filter reduce

map(函数名,可遍历迭代的对象) # 列组元素全加 10 # map(需要做什么的函数,遍历迭代对象)函数 map()遍历序列得到一个列表,列表的序号和个数和原来一样 l = [2,3,4,5,6,7,8] t = list(map(lambda x:x+10,l)) #遍历 l,l 里的元素全加10 map得到的结果是可迭代对象所以要list print(t) #===>[12, 13, 14, 15, 16, 17, 18] filter(函数名,可遍历迭代的对象) # filter(返回

Python内置函数(34)——filter

英文文档: filter(function, iterable) Construct an iterator from those elements of iterable for which function returns true. iterable may be either a sequence, a container which supports iteration, or an iterator. If function is None, the identity functio

[python基础知识]python内置函数map/reduce/filter

python内置函数map/reduce/filter 这三个函数用的顺手了,很cool. filter()函数:filter函数相当于过滤,调用一个bool_func(只返回bool类型数据的方法)来迭代遍历每个序列中的元素. 返回bool_func结果为true的元素的序列(注意弄清楚序列是什么意思)http://blog.csdn.net/bolike/article/details/19997465序列参考</a> 如果filter参数值为None,list参数中所有为假的元 素都将被

Python学习(五)函数 —— 内置函数 lambda filter map reduce

Python 内置函数 lambda.filter.map.reduce Python 内置了一些比较特殊且实用的函数,使用这些能使你的代码简洁而易读. 下面对 Python 的 lambda.filter.map.reduce 进行初步的学习. lambda 匿名函数 lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的返回值. lambda语句构建的其实是一个函数对象,参考下例来感受下 lambda 匿名函数: 1 def f(i): # 用户自定义返回平方数 2 retur

Python基础篇【第2篇】: Python内置函数--map/reduce/filter/sorted

Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位置使用lambda表达式.在开发者想要使用一个简单函数作为参数或者返回值时,使用lambda表达式是很方便的.总结:处理简单逻辑,自动返回结果 语法格式: lambda parameters: expression 就相当于 def fun(args) return expression 并且lam

Python补充--Python内置函数清单

Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义.最常见的内置函数是: print("Hello World!") 在Python教程中,我们已经提到下面一些内置函数:基本数据类型 type()反过头来看看 dir()   help()    len()词典 len()文本文件的输入输出 open()循环设计 range()   enumerate()    zip()循环对象

python学习系列--python内置函数(一)

先列出所有的python内置函数,可以看到还是挺多的. abs()        求给定数的绝对值. all()          传入一个列表,只有当列表中所有元素都是真时,该函数返回真. any()        传入一个列表,只要列表中有一个元素为真,该函数即返回真. ascii()       执行对象中的__repr__方法.该函数在python2.7中已弃用. bin()         将给定的值转换成二进制. bool()       判断真假. bytearray()     

python内置函数简单归纳

做python小项目的时候发现熟练运用python内置函数,可以节省很多的时间,在这里整理一下,便于以后学习或者工作的时候查看.函数的参数可以在pycharm中ctrl+p查看. 1.abs(x):返回数字的绝对值 print ("abs(-40) : ", abs(-40)) print ("abs(100.10) : ", abs(100.10)) """ 结果: abs(-40) : 40 abs(100.10) : 100.1