美文网首页
Python几个特殊函数

Python几个特殊函数

作者: 上发条的树 | 来源:发表于2016-05-13 14:49 被阅读219次

在Python中,有几个特别的函数,它们常常被看做是Python能够进行所谓“函数式编程”的见证。它们是:filter、map、reduce、lambda、yield。有了它们,可以使得程序更简洁,没有它们,程序也可以以其他方式实现,只是有些麻烦罢了。

lambda

lambda函数,是一个一行就能解决问题的函数。

lambda arg1,arg2,...argN : expression using arguments

>>> g = lambda x,y:x*y
>>> g(10,3)
30

1、lambda后面直接跟变量
2、变量后面是冒号
3、冒号后面是表达式,表达式计算结果是本函数的返回值

虽然lambda函数可以接收任意多个参数(包括可选参数)并且返回单个表达式的值,但是lambda函数不能包含命令,包含的表达式不能超过一个。不要试图向lambda函数中塞入太多的东西;如果需要更复杂的东西,应该定义一个普通函数,然后要多长有多长。

map

map(function ,iterable,...)
说明:function是一个函数,iterable是一个序列对象

>>> items = [1,2,3,4,5]
>>> map(lambda x:x**2,items)
[1, 4, 9, 16, 25]

1、对于iterable中 的每个元素,依次应用function的方法(函数)这本质上就是一个for循环
2、将所有结果返回一个list
3、如果参数很多,则那些参与并执行function。

例如:

>>> items = [1,2,3,4,5]
>>> map(lambda x:x+1,items)
[2, 3, 4, 5, 6]
>>>
>>> lst1 = [1,2,3,4,5]
>>> lst2 = [6,7,8,9,10]
>>> map(lambda x,y:x+y,lst1,lst2)
[7, 9, 11, 13, 15]
>>>

reduce

reduce(function, iterable[ initializer])
原理:
从以上图可以看出,是将序列中的元素想加。


20401.png
>>> reduce(lambda x,y:x+y,[1,2,3,4,5])
15

有两个 list,a = [3,9,8,5,2],b=[1,4,9,2,6],计算:a[0]b[0]+a[1]b[1]+...的结果。

>>> a = [3,9,8,5,2]
>>> b = [1,4,9,2,6]
>>> reduce(lambda x,y:x+y,map(lambda x,y:x*y,a,b))
133

filter

filter(function, iterable)
filter 的中文含义是“过滤器”,在 Python 中,它就是起到了过滤器的作用。首先看官方说明:

>>> numbers = range(-5,5)
>>> numbers
[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4]
>>> filter(lambda x:x>0,numbers)
[1, 2, 3, 4]

>>> filter(lambda y:y!='u','wuxiaoxin')
'wxiaoxin'

以下等效:

>>> [x for x in numbers if x>0]
[1, 2, 3, 4]

相关文章

  • Python几个特殊函数

    在Python中,有几个特别的函数,它们常常被看做是Python能够进行所谓“函数式编程”的见证。它们是:filt...

  • Python 拓展之特殊函数(lambda 函数,map 函数,

    写在之前 今天给大家介绍几个比较特殊的函数,他们具有函数式编程的特点,有人将它们视为 Python 可进行 “函数...

  • Python学习笔记

    参考文章 Python学习笔记[2] 一步一步教你认识Python闭包 高阶函数 特殊的函数,特殊在能将函数作为参...

  • Python札记24_lambda、map

    在Python中有几个特殊的函数,它们能够进行函数式的编程。在函数式编程中,一个程序会被看做是一个无状态的函数计算...

  • python特殊函数

    在Python中,有几个特别的函数,它们常常被看做是Python能够进行所谓“函数式编程”的见证。它们是:filt...

  • Python(技巧和坑)

    Python中几个内置函数

  • (十一)函数<4>几个特殊函数

    1.lambda()---匿名函数,可以把函数压缩在一行里搞定: 平常的作法: 使用lambda(): 或者这样:...

  • Python函数详解

    函数是Python里组织代码的最小单元,Python函数包含以下几个部分: 定义函数 调用函数 参数 函数的返回值...

  • Python札记26_python特殊函数详解(待更新)

    本篇札记对Python中几个比较特殊函数进行一个总结,文中提到的函数在前面的札记基本上都有阐述,本文主要是复习巩固...

  • python内置函数filter map reduce lamb

    Python内置了一些特殊函数,这些函数很具python特性。可以让代码更加简洁。 可以看例子: 1filter(...

网友评论

      本文标题:Python几个特殊函数

      本文链接:https://www.haomeiwen.com/subject/lkaprttx.html