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

什么是lambda?

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

 好了介绍完成了lambda,那就让我们来实际用一下,实例如下:

下面我们再来看看小米加上步枪的结合使用。
1、reduce + lambda
What is reduce?

Python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(列表,元组等)中的所有数据进行如下操作:传给reduce中的函数func() (必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果。

关于python reduce的详细解析,后续详细介绍,下面我们介绍一下reduce + lambda的应用案例:

Python3 统计某字符串重复次数:

from functools import reduce
sentences = [‘The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. ‘]
word_count =reduce(lambda a,x:a+x.count("learning"),sentences,0)
print(word_count)

>2

2、map + lambda
What is map?

map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。

格式:map(func, seq1[, seq2...] )

Python函数式编程中的map()函数是将func作用于seq中的每一个元素,并用一个列表给出返回值。如果func为None,作用同zip()。

详细应用code如下:

这里需要注意的是:升级到python3的时候,map函数有一个变化那就是,如果不在map前加上list,lambda函数根本就不会执行。

在python2中,map会直接返回结果:

而再python3下面,返回的就是一个map对象:

<map object at 0x7f381112ad50>

如果要得到结果,必须用list作用于这个map对象。
 
3、filter + map
What is filter?

filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。
和map()类似,filter()也接收一个函数和一个序列。和map()不同的时,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

简单应用如下:

这里简单介绍一下python内置函数小米加步枪,更详细的介绍再会,打完收工!

原文地址:https://www.cnblogs.com/zhangray/p/9533150.html

时间: 2024-12-28 20:56:49

Python单行函数lambda(小米)加reduce、map、filter(步枪)应用的相关文章

Python interview - reduce &amp; map &amp; filter

Python有很多有用有趣的内置函数,比如reduce,map,filter,lambda,zip等.已经写过了lambda和zip相关的博客.继续写关于reduce,map,filter. Map 首先用help方法看一下map的具体用法. help(map) # result Help on built-in function map in module __builtin__: map(...) map(function, sequence[, sequence, ...]) -> lis

Python匿名函数lambda

lambda是匿名函数,形式为 lambda x : x * x 等价于 def func(x): return x * x 其中"x"相当于函数参数, 表示式"x*x"相当于返回值,所以lambda不需要也不能有return. 匿名函数本身是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数.匿名函数适用于编写简单的函数,因为不需要函数命令,不会造成函数名冲突. #!/usr/bin/python #coding=utf-8 import os,

python 匿名函数 lambda

一.lambda使用语法: 关键字lambda表示匿名函数,冒号前面的x表示函数参数,冒号后面只能有一个表达式,不用写return,返回值就是该表达式的结果. 1 >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5])) 2 [1, 4, 9, 16, 25] 无参数lambda表达式: 1 >>> f = lambda : 2 * 2 2 >>> f() 3 4 二.匿名函数是一个函数对象 用匿名函数有个好处,因

Python匿名函数——lambda表达式

如果要定义的函数很简单,一个return语句就能搞定,可以使用lambda表达式来定义, lambda表达式的语法如下: lambda parameters: expression lambda表达式并不包含return语句,凡是使用函数作为参数或返回值的地方,都可以使用lambda表达式,lambda函数的好处有: 简便,顺手 可以不给函数起名字,某些不需要重用该函数的地方,实质上不需要给函数想一个名字 下面的例1将lambda表达式定义的函数作为内置函数filter的参数, 例1. 将lam

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

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

python update函数(20)

在前一篇文章  python ChainMap中我们介绍了关于python内置函数 ChainMap的使用,ChainMap函数和update函数类似,都是对字典操作,也是将多个字典合并,那么问题来了?ChainMap和update两者区别在哪呢? 一.update简介 python 字典(Dictionary) update() 函数把字典dict的键/值对更新到另外一个dict里. dict1= {"a":"zhangsan","b":&qu

Python help函数

python 3.x版本虽然比2.x少了一些内置函数,但是python 内置函数没有60个,也有40个,那么多内置函数你记得过来吗?为了方便使用,python 提供了help函数专门用来提供查看函数或模块用途的详细说明: 一.help函数简介 语法如下: help([object]) 参数: object – 对象/函数名/模块: 返回值 – 返回对象的帮助信息: 二.help函数使用 1.查看内置函数的帮助信息 print(help(type)) # 内置函数type - 获取数据变量类型 输

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几个特别函数map filter reduce lambda

lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x): return x**2 print f(4) Python中使用lambda的话,写成这样 g = lambda x : x**2 print g(4) lambda表达式在很多编程语言都有对应的实现.比如C#: var g = x => x**2 Console.WriteLine(g(4)) 那么,lambda表达式有什么用处呢?很多人提出了质疑,lambda和普通的函数相比,就是省去了函数名称