lambda

1,用于处理简单逻辑

2,自动返回数据(return)

单参数

>>> func2 = lambda a: a+1
>>> result = func2(1000)
>>> print result
1001

多参数

>>> func3 = lambda a,b: a+b
>>> result = func3(1000,888)
>>> result
1888

map

我们先看map。map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

>>> def f(x):
... return x*x
...
>>> map(f,[1,2,3])
[1, 4, 9]

也可以传递两个列表

>>> l1
[11, 22, 33]
>>> l2
[11, 22, 33]

>>> def func2(a1,a2):
... return a1 + a2
...
>>> map (func2,l1,l2)
[22, 44, 66]

filter

map()类似,filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

例如,在一个list中,删掉偶数,只保留奇数,可以这么写:

>>> def is_odd(n):
... return n % 2 == 1
...
>>> filter(is_odd,[1,2,4,5,6,9,10,15])
[1, 5, 9, 15]

reduce

对于序列内的所有元素进行累计操作

>>> li = [11,22,33]
>>> result = reduce(lambda arg1,arg2:arg1 + arg2,li)
>>> print result
66

yield

用来记住上一次操作,下次再执行时继续执行

函数内,ruturen,函数执行完毕 把return换成yield

vim day4-6.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
def func1():
return 1
print func1()

执行返回为1

修改代码

#!/usr/bin/python
# -*- coding:utf-8 -*-
def func1():
yield 1
yield 2
yield 4
print func1()

  返回为

<generator object func1 at 0x7fc4b1ab0780>

修改代码

#!/usr/bin/python
# -*- coding:utf-8 -*-
def func1():
yield 1
yield 2
yield 4
for i in func1():
print i

  返回为1 2 4

使用了迭代返回

使用yield模拟xrange功能

vim day4-7.py

#!/usr/bin/python
# -*- coding:utf-8 -*-
def mrange(arg):
seed = 0
while seed <= arg-1:
seed = seed + 1
yield seed - 1 for i in mrange(10):
print i

reduce的基数概念

li=[1,2,3,4,5,6,7,8,9,10]
>>> result = reduce(lambda arg1,arg2:arg1 + arg2,li )
>>> print result
55
>>> result = reduce(lambda arg1,arg2:arg1 + arg2,li,1000 )
>>> print result
1055

小结

map 所有元素操作

filter 过滤,获取指定元素计划

reduce累积

装饰器

装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或者类,使用装饰器可以在函数执行前执行后添加相应操作

Python函数之lambda,内置函数,yield生成器等的更多相关文章

  1. python day5 lambda,内置函数,文件操作,冒泡排序以及装饰器

    目录 python day 5 1. 匿名函数lambda 2. python的内置函数 3. python文件操作 4. 递归函数 5. 冒泡排序 6. 装饰器 python day 5 2019/ ...

  2. python中常见的内置函数

    map #自定义map函数 def map_test(func, list): res = [] for item in list: res.append(func(item)) return res ...

  3. Python装饰器及内置函数

    装饰器 听名字应该知道这是一个装饰的东西,我们今天就来讲解一下装饰器,有的铁子们应该听说,有的没有听说过.没有关系我告诉你们这是一个很神奇的东西 这个有多神奇呢? 我们先来复习一下闭包 def fun ...

  4. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  5. python 函数 装饰器 内置函数

    函数 装饰器 内置函数 一.命名空间和作用域 二.装饰器 1.无参数 2.函数有参数 3.函数动态参数 4.装饰器参数 三.内置函数 salaries={ 'egon':3000, 'alex':10 ...

  6. python的68个内置函数

    内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...

  7. python中68个内置函数的总结

    内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...

  8. python字符串——"奇葩“的内置函数

      一.前言 python编程语言里的字符串与我们初期所学的c语言内的字符串还是有一定不同的,比如python字符串里的内置函数就比语言的要多得多:字符串内的书写格式也会有一点差异,例:字符串内含有引 ...

  9. python 类(object)的内置函数

    python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...

随机推荐

  1. less可以做什么?less详解!(less嵌套选择器实现纯CSS二级导航)

    前端技术众多,作为一名前端工程师,我们每接触新技术首先要懂得此技术的优势和劣势,这是最基本的.往深入了说还需要懂得技术的应用场景,配合的技术等,方便为以后架构做准备.而less作为一门CSS预处理语言 ...

  2. RegExp类型(正则表达式)

    直接量语法 /pattern/attributes 创建 RegExp 对象的语法: new RegExp(pattern, attributes); 一.attributes: 修饰符 描述 i 执 ...

  3. icheck样式绑定与翻页保持

    官方文档:http://icheck.fronteed.com/ 使用基本样式 $('input').iCheck({ checkboxClass : 'icheckbox_square-blue', ...

  4. Python之路-Linux命令基础(5)

    作业一:nginx服务 二进制安装nginx包 1.使用网络yum源 2.使用yum安装epel-release扩展源 [root@localhost html]# yum install epel- ...

  5. 使用SevenZipSharp压缩/解压7z格式

    7z格式采用的LZMA算法,号称具有现今最高压缩率.笔者在nuget上搜索7z,在搜索结果中最终选择了SevenZipSharp来进行压缩/解压.不得不说,SevenZipSharp的API设计得非常 ...

  6. 纯JS写最简单的图片轮播

    非常简单的一个大图轮播,通过将控制显示位置来进行轮播效果,写来给正在学习的新手朋友们参考交流. 先看效果:(实际效果没有这么快) 先看布局: <div id="display" ...

  7. php 1到100累加 新方法

    <?php $sum = 0; for($i=0;$i<=100;$i++){ $sum += $i; } echo $sum; 之前只是这么写. 现在发现可以这么写 $sum = arr ...

  8. JDBC基础学习(一)—JDBC的增删改查

    一.数据的持久化     持久化(persistence): 把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,数据持久化意味着将内存中的数据保存到硬盘上加以固化,而持久化的实现过程大多通过各 ...

  9. 用java写的一个简易记事本

    import java.awt.*; import java.awt.event.*; import java.io.*; public class NoteDemo { private Frame ...

  10. KMP算法【代码】

    废话不多说,看毛片算法的核心在于next数组. 很多地方用的都是严书上的方法来求解next数组,代码确实简洁明了,但是可能对于初学者来说不容易想到,甚至不是一下子能理解.(好了,其实我说的就是自己,别 ...