python——lambda,filter,map,reduce

lambda函数

使用方法:lambda [arg1[,arg2,arg3,...,argn]] : expression

如:

add = lambda(x,y:x+y)
add(1,2)

结果为1+2=3

filter函数

filter(bool_func,seq)

此函数的功能相当于过滤器,通过返回值为bool的函数bool_func来迭代遍历seq中的每个元素;

结果返回一个seq中使bool_func返回值为true的元素的序列。

filter(lambda x : x%2 == 0,[1,2,3,4,5])  

结果为[2,4],即1~5中可以被2整除的数为2和4

filter的内部实现如下:

def filter(bool_func,seq):
    filtered_seq = []
    for eachItem in seq:
        if bool_func(eachItem):
            filtered_seq.append(eachItem)
    return filtered_seq

map函数

map(function, seq[..., seq, ...]) -> list

第一个参数是一个函数,剩下的参数是一个或多个序列,返回值是一个集合。

map(lambda x: x ** 2, [1, 2, 3, 4, 5])

返回结果为:[1, 4, 9, 16, 25]

在参数存在多个序列时,会依次以每个序列中相同位置的元素做参数调用function函数。

比如要对两个序列中的元素依次求和。

map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

返回结果为:[3, 7, 11, 15, 19]

要注意function函数的参数数量,要和map中提供的集合数量相匹配。

如果集合长度不相等,会以最小长度对所有集合进行截取。

当函数为None时,操作和zip相似:

map(None, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])

返回结果为:

[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]

reduce函数

reduce(func, seq[], initial) -> value

func是一个有两个参数的函数,reduce依次从seq中取一个元素,和上一次调用func的结果做参数再次调用func。

initial为可选参数,如果提供该参数,则func第一次会用intial和seq中得第一个元素作为参数,否则用seq中的第一个和第二个元素作为参数

reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)

结果为21,即(((((1+2)+3)+4)+5)+6)

reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])

结果为20,即(((2+3)+4)+5)+6)

注:reduce中得func不能为None

python——lambda,filter,map,reduce

时间: 2024-08-10 00:05:37

python——lambda,filter,map,reduce的相关文章

lambda&filter&map&reduce函数的基本使用

'''Created on 2019-03-14Author:BinzhouProject:python中lambda filter map reduce函数使用总结''' #lambda匿名函数,格式lambda x,y:x+y 表示一个函数的参数是x,y,函数实现功能是x+y #filter[function,sequence]用于过滤序列 返回迭代器对象(包含所有满足使function返回值为True的sequence值)#python2直接返回与sequence一致的数据类型(列表,元组

python中filter, map, reduce, lambda

python 中内置的几个函数filter, map, reduce, lambda简单的例子. #!/usr/bin/env python #_*_coding:utf-8_*_ #filter(function, sequence): #对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回. #可以看作是过滤函数. tasks = [ { 'id': 1, 'title

python之lambda,filter,map,reduce函数

g = lambda x:x+1 看一下执行的结果: g(1) >>>2 g(2) >>>3 当然,你也可以这样使用: lambda x:x+1(1) >>>2 可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为: def g(x): return x+1 非常容易理解,在这里lambda简化了函数定义的书写形式.是代码更为简洁,但是使用函数的定义方式更为直观,易理解. Python中,

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 函数 filter() map() reduce()

1.filter(bool_func,seq) filter()是'筛选函数',也接收一个函数和一个序列,filter()把传人的函数依次作用于序列的每个元素,然后根据返回值是True还是false决定保留还是丢弃该元素 例子: def fr(x): return x%2==1 print 'filter1:',filter(fr,range(1,51))#筛选出100以内的所有奇数 print 'filter2:',filter(fr,[1,2,3,4]) 输出: filter1: [1, 3

[转]Python 中的 lambda,filter,map,reduce,apply

1. lambda 1. 基本形式: 函数名=lambda args1,args2,...,argsn:expression与C语言中的宏定义类似 2. Code 1 isodd = lambda x: x%2==0 2 pow2 = lambda x: x<<1 2. filter 1. 基本形式 ans=filter(function,array)相当于一个过滤函数,这里的function的返回值为布尔型,array中满足function的元素留下. 2. Code 1 array=[1,

python的高级函数- lambda,filter,map,reduce

第一: 匿名函数---lambda的理解 第二:  filter函数的理解 第三: map函数的理解 第四:reduce函数的理解 原文地址:https://www.cnblogs.com/ivyharding/p/12382330.html

Python经常使用内置函数介绍【filter,map,reduce,apply,zip】

Python是一门非常简洁,非常优雅的语言,其非常多内置函数结合起来使用,能够使用非常少的代码来实现非常多复杂的功能,假设相同的功能要让C/C++/Java来实现的话,可能会头大,事实上Python是将复杂的数据结构隐藏在内置函数中,用C语言来实现,所以仅仅要写出自己的业务逻辑Python会自己主动得出你想要的结果.这方面的内置函数主要有,filter,map,reduce,apply,结合匿名函数,列表解析一起使用,功能更加强大.使用内置函数最显而易见的优点是: 1. 速度快,使用内置函数,比

filter,map,reduce,lambda(python3)

1.filter filter(function,sequence) 对sequence中的item依次执行function(item),将执行的结果为True(符合函数判断)的item组成一个list.string.tuple(根据sequence类型决定)返回. 1 #!/usr/bin/env python 2 # encoding: utf-8 3 """ 4 @author: 侠之大者kamil 5 @file: filter.py 6 @time: 2016/4/