Python函数之lambda,内置函数,yield生成器等
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()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的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生成器等的更多相关文章
- python day5 lambda,内置函数,文件操作,冒泡排序以及装饰器
目录 python day 5 1. 匿名函数lambda 2. python的内置函数 3. python文件操作 4. 递归函数 5. 冒泡排序 6. 装饰器 python day 5 2019/ ...
- python中常见的内置函数
map #自定义map函数 def map_test(func, list): res = [] for item in list: res.append(func(item)) return res ...
- Python装饰器及内置函数
装饰器 听名字应该知道这是一个装饰的东西,我们今天就来讲解一下装饰器,有的铁子们应该听说,有的没有听说过.没有关系我告诉你们这是一个很神奇的东西 这个有多神奇呢? 我们先来复习一下闭包 def fun ...
- Python标准库:内置函数hasattr(object, name)
Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...
- python 函数 装饰器 内置函数
函数 装饰器 内置函数 一.命名空间和作用域 二.装饰器 1.无参数 2.函数有参数 3.函数动态参数 4.装饰器参数 三.内置函数 salaries={ 'egon':3000, 'alex':10 ...
- python的68个内置函数
内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...
- python中68个内置函数的总结
内置函数 内置函数就是python给你提供的, 拿来直接用的函数, 比如print., input等. 截止到python版本3.6.2 python一共提供了68个内置函数. #68个内置函数 # ...
- python字符串——"奇葩“的内置函数
一.前言 python编程语言里的字符串与我们初期所学的c语言内的字符串还是有一定不同的,比如python字符串里的内置函数就比语言的要多得多:字符串内的书写格式也会有一点差异,例:字符串内含有引 ...
- python 类(object)的内置函数
python 类(object)的内置函数 # python 类(object)的内置函数 ### 首先 #### 以__双下划线开头的内置函数 __ #### __往往会在某些时候被自动调用,例如之 ...
随机推荐
- iOSiOS开发之数据存储之NSKeyedArchiver
1.概述 NSKeyedArchiver归档和plist文件存储不同的是NSKeyedArchiver可以直接保存对象.如果对象是NSString.NSDictionary.NSArray.NSDat ...
- iOS开发之自定义UITableView的cell
系统默认的UITableViewCell的每行都有横线(分隔符),就算没有数据也是如此,有时候我们想只在有数据的地方有下划线,可以去除下划线,然后在awarkFromNid方法中使用addsubvie ...
- 日历组件的使用,bootstrap-datetimepicker
官方文档:http://www.bootcss.com/p/bootstrap-datetimepicker/ .html <input name="createdTimeEnd&qu ...
- JavaWeb之cookie
什么叫做会话 ? 用户从打开一个浏览器开始,浏览器网站,到关闭浏览器的整个过程叫做一次会话! 每个用户与服务器进行交互的过程中,各自会有一些数据,程序要想办法保存每个用户的数据. 例如:用户点击超链接 ...
- 使用cocapods报错 [!] Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you are not using TextEdit, you should turn off smart quotes
从github上下载的工程大部分都使用了cocapods,在install的时候可能会报错. 报错原因: 1.不要使用文本编辑去编辑Podfile文件,使用Xcode编辑,或者使用终端敲命令去编辑. ...
- 基于MVC和Bootstrap的权限框架解决方案 二.添加增删改查按钮
上一期我们已经搭建了框架并且加入了列表的显示, 本期我们来加入增删改查按钮 整体效果如下 HTML部分,在HTML中找到中意的按钮按查看元素,复制HTML代码放入工程中 <a class=&qu ...
- 使用mysql索引技巧及注意事项
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重. 在数据 ...
- 使用nodejs进行WEB开发
这里,准备从零开始用nodejs实现一个微博系统.功能包括路由控制.页面模板.数据库访问.用户注册.登录.用户会话等内容. 将会介绍Express框架.MVC设计模式.ejs模板引擎以及MongoDB ...
- Zepto 添加手势判断拓展方法(思路+原理)
一.前言 这几个月事情比较多,写了一些博客都没有来得及整理发布,今天刚好有一位同事在开发前端页面的时候用到了手势判断.所以翻出了之前写的 demo,顺便整理一下作为记录. 手势判断在各种应用中都十分常 ...
- stm32中断学习总结
经过了两天,终于差不多能看懂32的中断了,由于是用的库函数操作的,所以有些内部知识并没有求甚解,只是理解知道是这样的.但对于要做简单开发的我来说这些已经够了. 我学习喜欢从一个例程来看,下面的程序是我 ...