python Lambda, filter, reduce and map

1. lambda

The lambda operator or lambda function is a way to create small anonymous functions , i.e. functions without a name.

  可以方便的创造一个函数。比如

  

def add(x,y):

    return x+y

  用lambda 写就是

  

lambda x,y:x+y

  非常简洁。这条语句会返回一个函数指针,你可以他赋值,或者配合map ,reduce 等操作。

  比如说想把list [1,2,3,4,5]的每个值的乘2,返回一个list  .

2. map

  lambda配合map用是最方便的了。

    r = map(func, seq)

    map接收一个func 指针,然后把函数作用到seq的每个成员上。

  接上面的例子就是 :

  

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

    

3. Filtering

  和map 类似 ,只不过他是过滤list,也接受一个func的lambda 表达式,然后如果表达式为真就过滤掉。

    filter(function, list)

  

fib = [0,1,1,2,3,5,8,13,21,34,55]
filter(lambda x: x % 2, fib)
[1, 1, 3, 5, 13, 21, 55]

  直接过滤掉偶数的项。

4.Reducing

  The function reduce(func, seq) continually applies the function func() to the sequence seq. It returns a single value.

If seq = [ s1, s2, s3, ... , sn ], calling reduce(func, seq) works like this:

  [ func(s1, s2), s3, ... , sn ]

   [ func(func(s1, s2),s3), ... , sn ]

  持续对list 进行func的操作,最终结果是产生一个数值!

  

reduce(lambda x,y: x+y, [47,11,42,13])
113

  比如说这个,依次对47,11 进行相加, 变成 [58,42,13]

    然后再相加 [100,13]

    113

  

时间: 2024-11-08 00:48:56

python Lambda, filter, reduce and map的相关文章

Python的lambda, filter, reduce 和 map简介

Lambda 操作 Lambda操作——有些人喜欢,有些人讨厌,还有很多人害怕.当你看完了我们这章的介绍后,我们很自信你会喜欢上它.要不然,你可以去学习Guido van Rossums更喜欢去用的“list comprehensions”(递推式构造列表)了,因为他也不喜欢Lambda, map filter 和reduce. Lambda操作或者lambda函数是一种创建小型匿名函数的方式,即:函数都没有函数名.这些函数都是投掷(throw-away)函数,即:它们只会在我们需要的地方创建,

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,

Python lambda和reduce函数

看到一篇博文写lambda和reduce函数,笔者小痒了一下,用Python实现一下: #! /usr/bin/env python # -*-coding:utf-8-*- import time import math def test_reduce(): start_time = time.clock() print reduce[A1] (lambdax,y:x*y[A2] ,range(1,long(input('plz input a num(>0):')+1))[A3] ) pri

python的filter,reduce,map

1.filter filter(func,iter) 只能处理一个参数(iter),仅仅将满足func方法的数值过滤出来 如: a = [1,2,3,4,5] list(filter(lambda x:x>2,a)) 输出结果为: [3,4,5] map(func,iter1,iter2,..) 可以处理多个iter,实现通过func方法对iter1,iter2,..进行处理 2.reduce python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数

python中filter(),reduce()函数

filter()函数 是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 和一个list,这个函数的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list. 例如:要从一个list [1,3,4,5,6,7,9,10]中删除偶数,保留奇数,编写一个判断奇数的函数: def is_odd(x): return x%2==1 a=list(filter(is_odd,[1,3,4,

python中filter,reduce,map的用法

filter的用法: 操作表list的内嵌函数'filter' 需要一个函数与一个list它用这个函数来决定哪个项应该被放入过滤结果队列中遍历list中的每一个值,输入到这个函数中如果这个函数返回True, 那么值就放到过滤结果队列中去如果这个函数返回 False,那么这个值就会被跳过 def pick_num(x): if x%3==0: return x r=[2,4,6,8,10] result=list(filter(pick_num,r)) reduce用法: 操作表list的内嵌函数

闭包 -> map / floatMap / filter / reduce 浅析

原创: 转载请注明出处 闭包是自包含的函数代码块,可以在代码中被传递和使用 闭包可以捕获和存储其所在上下文中任意常量和变量的引用.这就是所谓的闭合并包裹着这些常量和变量,俗称闭包.Swift 会为您管理在捕获过程中涉及到的所有内存操作. 闭包表达式是一种利用简洁语法构建内联闭包的方式 sort 方法(The Sort Method) Swift 标准库提供了名为sort的方法,会根据您提供的用于排序的闭包函数将已知类型数组中的值进行排序.一旦排序完成,sort(_:)方法会返回一个与原数组大小相

Python常用内置函数整理(lambda,reduce,zip,filter,map)

匿名函数lambda lambda argument1,argument2,...argumentN :expression using arguments 1.lambda是一个表达式,而不是一个语句. 因为这一点,lambda可以出现在python语法不允许def出现的地方---例如,在一个列表常量中或者函数调用的参数中. 2.lambda 的主体是一个单个的表达式,而不是一个代码块. lambda是一个为编写简单的函数设计的,而def用来处理更大的任务. 例如: lambda表示式写法:f

Python单行函数lambda(小米)加reduce、map、filter(步枪)应用

什么是lambda? lambda定义匿名函数,并不会带来程序运行效率的提高,只会使代码更简洁.为了减少单行函数的定义而存在的. lambda的使用大量简化了代码,使代码简练清晰.但是值得注意的是,这会在一定程度上降低代码的可读性.如果不是非常熟悉Python的人也许会对此很难理解. 如果可以使用for...in...if来完成的,坚决不用lambda. 如果使用lambda,lambda内不要包含循环,如果有,宁愿定义函数来完成,使代码获得可重用性和更好的可读性.如果你对你就喜欢用lambda