生成器
只要在函数体内出现yield关键字,那么再执行函数就不会执行函数代码,会得到一个结果,该结果就是生成器。
生成器就是迭代器。
def foo():
print(‘add‘)
yield 1
print(‘sidhi‘)
yield 2
g=foo()
next(g)
res1=next(g)
print(res1)
yield的功能:
1.yield为我们提供了一种自定义迭代器对象的方法。
2.yield与retuen的区别,yield可以返回多次值,所以函数的暂停与继续的转态由yield帮我们保存的。
例:range的编写 #range(1,10,2)
def bar(x,y,z):
while x <= y:
yield x
x+=z
g=bar(1,10,2)
print(next(g))
案例:编写tail -f error.log |grep ‘abc‘
import time
def foo(file):
with open(file,‘rb‘) as f:
f.seek(0,2) #光标直接到末尾
分类:
其他 时间:
2018-08-22 21:46:27
收藏:
0 评论:
0 赞:
0 阅读:
185
迭代:指的是一个重复的过程,每一次重复称为一次迭代,并且每一次重复的结果是下一次重复的初始值。
l=[‘a‘,‘b‘,‘c‘,‘d‘]
count=0
while count < len(l):
print(l[count])
count+=1
对于序列类型:str ,list,tuple 可以依赖索引来迭代取值,但是对于dict,set,文件,python必须为我们提供一种不依赖于索引的迭代取值的方式。
可迭代对象:obj.__iter__
字符串,列表,元组,字典,文件,集合
迭代器对象:obj.__iter__ 和 obj.__next__ 等于iter(),next()
文件
注:
可迭代对象不一定是迭代器对象
迭代器对象一定是迭代对象
调用obj.__iter__()方法,得到的是一个迭代器对象,对于迭代器对象,执行.__iter__得到的任然是它本身。
l=[‘a‘,‘b‘,‘c‘,‘d‘]
l_iter=l.__iter__() #将l_iter转为一个迭代器对象
d={‘name‘:‘abc‘,‘age‘:18,‘sex‘:‘anle‘}
分类:
其他 时间:
2018-08-22 21:45:27
收藏:
0 评论:
0 赞:
0 阅读:
154
初学docker的时候遇到这个问题不要慌,只须在/usr/lib/sysctl.d/目录下的00-system.conf文件里添加net.ipv4.ip_forward=1即可保存后,执行命令systemctlrestart&&systemctl。。。从前车马很慢,书信很远,一生只够爱一个人!
分类:
其他 时间:
2018-08-22 21:44:55
收藏:
0 评论:
0 赞:
0 阅读:
194
Table ‘.\td_oa\email_body‘ is marked as crashed and should be repaired
分类:
数据库技术 时间:
2018-08-22 21:44:43
收藏:
0 评论:
0 赞:
0 阅读:
312
一:设置更改root密码(1)编辑mysql主配置文件my.cnf#vim/etc/my.cnf在[mysqld]字段下添加参数skip-grant5.7版本下需要添加#skip-grant-tables(2)重启数据库服务#servicemysqldrestart(3)这样就可以进入数据库不用授权了#/usr/local/mysql/bin/mysql-uroot(4)修改相应用户密码usemy
分类:
数据库技术 时间:
2018-08-22 21:44:31
收藏:
0 评论:
0 赞:
0 阅读:
206
maven 生命周期介绍: validate - validate the project is correct and all necessary information is available compile - compile the source code of the project t ...
分类:
其他 时间:
2018-08-22 21:43:28
收藏:
0 评论:
0 赞:
0 阅读:
192
首先新建个 maven 项目菜单 -> File -> New -> Other -> Maven -> Maven -> Maven Project -> New Maven Project勾上这个 Create a simple project (skip archetype selection ...
分类:
编程语言 时间:
2018-08-22 21:42:56
收藏:
0 评论:
0 赞:
0 阅读:
160
稀疏基的讨论已经持续了近一个月了,这次讨论多尺度几何分析。但由于下面讨论的这些变换主要面向图像,而本人现在主要关注于一维信号处理,所以就不对这些变换深入讨论了,这里仅从众参考文献中摘抄整理一些相关内容作为自己的一个备忘录,概念也许并不一定理解的准确,若以后杀入图像处理领域再行好好揣摩研究。一、从小波... ...
分类:
Web开发 时间:
2018-08-22 21:42:12
收藏:
0 评论:
0 赞:
0 阅读:
243
异 形 卵 时间限制:1000 ms | 内存限制:65535 KB 难度:2 异 形 卵 时间限制:1000 ms | 内存限制:65535 KB 难度:2 我们探索宇宙,是想了解浩瀚星空的奥妙,但我们却很少意识到宇宙深处藏匿的危险,它们无时无刻不紧盯着我们的地球。如果外星人拜访我们,结果可能与哥 ...
分类:
其他 时间:
2018-08-22 21:41:54
收藏:
0 评论:
0 赞:
0 阅读:
163
题意 给许多个x,y,k,若k=1,x==y,否则x!=y,如果矛盾,输出NO,否则YES 对于k=1,并查集简单操作一下,k=0,如果find(x)==find(y),打个标记,输出NO; 有一个需要注意的地方是,对于询问我们要进行sort,使k=1的情况先执行,这样可以保证最后判断的答案正确。 ...
分类:
编程语言 时间:
2018-08-22 21:41:39
收藏:
0 评论:
0 赞:
0 阅读:
174
Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a list ...
分类:
编程语言 时间:
2018-08-22 21:41:21
收藏:
0 评论:
0 赞:
0 阅读:
175
题目1.1 :显示"welcome to python " 答案:print('welcome to python') 题目1.2:显示"welcome to python " 五次 答案:print ("welcome to python\n") * 5 #\n表示换行,要是没有\n的话就会连接在 ...
分类:
编程语言 时间:
2018-08-22 21:41:04
收藏:
0 评论:
0 赞:
0 阅读:
241
牛顿动量法,相比于上一篇Momentum,不一样的地方是应用了临时更新 这里用python对其进行简单实现,如下: 结果,由于数据量太小,相比于Momentum提升不是很大: ...
分类:
编程语言 时间:
2018-08-22 21:40:50
收藏:
0 评论:
0 赞:
0 阅读:
239
恢复内容开始 了解了下关于stream的内容,把自己的理解和笔记还有一些自己写的demo放在下面 http://www.runoob.com/java/java8-streams.html Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream 使 ...
分类:
其他 时间:
2018-08-22 21:40:33
收藏:
0 评论:
0 赞:
0 阅读:
220
REPL运行环境 一、变量 对象的赋值和输出 二、下划线 '_' 的使用:表示最近一次输出的变量值。 三、基础命令 .break 可以使你返回到命令提示符起始点。 .clear 清楚REPL运行环境上斜纹对象中保存的所有变量与函数 .exit 该命令用于推出REPL运行环境 .help 该命令将在命 ...
分类:
Web开发 时间:
2018-08-22 21:40:17
收藏:
0 评论:
0 赞:
0 阅读:
233
using System;using System.Collections.Generic;using LModel.DTO;using Newtonsoft.Json;using System.Data.SqlClient;using System.Data;using DBHelper; nam ...
分类:
其他 时间:
2018-08-22 21:40:02
收藏:
0 评论:
0 赞:
0 阅读:
175
routes/web.php写路由 基本路由: ...
分类:
其他 时间:
2018-08-22 21:39:47
收藏:
0 评论:
0 赞:
0 阅读:
191
在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义: 这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。 O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关 ...
分类:
编程语言 时间:
2018-08-22 21:39:33
收藏:
0 评论:
0 赞:
0 阅读:
210