python3 生成器&迭代器
#Author by Andy
#_*_ coding:utf-8 _*_
import time
from collections import Iterable
#列表生成式 def func():
list=[]
for i in range(10000000):
list.append(i)
print(list)
#print(list)
#[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
generator=(i for i in range(10)) #print(type(generator))
def func1():
for i in generator:
print(i)
def timmer():
time_start=time.time()
func1()
time_stop=time.time()
print(time_stop-time_start)
#定义斐波那契数列
def fib(max):
n,a,b=0,0,1
while n < max:
print(b)
a,b=b,a+b
n=n+1
fib(10)
# 注意,赋值语句:
# a, b = b, a + b
# 相当于:
# t = (b, a + b) # t是一个tuple
# a = t[0]
# b = t[1]
def fib(max):
n,a,b=0,0,1
while n < max:
yield b
a,b=b,a+b
n=n+1
return 'done'
f=fib(10)
s='我是分割线'
print(f.__next__())
print(s.center(50,'-'))
print(f.__next__())
print(s.center(50,'-'))
#异常捕获
g=fib(10)
while True:
try:
x = next(g)
print(x)
except StopIteration as e:
print("Generator got en error:",e.value)
break
#############################################################
#通过yield实现在单线程的情况下实现并发运算的效果
def consumer(name):
print('%s 准备买面包啦'%name)
while True:
product=yield
print('%s 买了面包%s'%(name,product))
def producer():
c1=consumer('韩梅梅')
c2=consumer('李雷')
c1.__next__()
c2.__next__()
for i in range(10):
time.sleep(1)
print('面包%s和面包%s出炉了!'%(i,i+1))
c1.send(i)
c2.send(i+1)
#producer() # 迭代器
# 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
#
# isinstance()判断一个对象是否是Iterable对对象
# 生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。
# 把list、dict、str等Iterable变成Iterator可以使用iter()函数 print(isinstance(generator,Iterable))
#True
python3 生成器&迭代器的更多相关文章
- python3.7 迭代器和生成器
#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 迭代器和生成器 #迭代器协议: ''' 1.迭代器协议是指:对象 ...
- python高级之生成器&迭代器
python高级之生成器&迭代器 本机内容 概念梳理 容器 可迭代对象 迭代器 for循环内部实现 生成器 1.概念梳理 容器(container):多个元素组织在一起的数据结构 可迭代对象( ...
- 第三篇:python高级之生成器&迭代器
python高级之生成器&迭代器 python高级之生成器&迭代器 本机内容 概念梳理 容器 可迭代对象 迭代器 for循环内部实现 生成器 1.概念梳理 容器(container ...
- python学习之- 生成器/迭代器
列表生成式写法: [ i*2 for i in range(10) ]也可以带函数 [ fun(i) for i in range(10) ] 生成器:一边循环一边计算的机制称为生成器.在常用函数中, ...
- Python自动化 【第四篇】:Python基础-装饰器 生成器 迭代器 Json & pickle
目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结构规范 1. Python装饰器 装饰器:本质是函数,(功能是装饰其它函数)就是为其他函数添加附加功能 原则: ...
- python 生成器 迭代器
阅读目录 一 递归和迭代 二 什么是迭代器协议 三 python中强大的for循环机制 四 为何要有for循环 五 生成器初探 六 生成器函数 七 生成器表达式和列表解析 八 生成器总结 一 递归和迭 ...
- day6学python 生成器迭代器+压缩文件
生成器迭代器+压缩文件 readme的规范 1软件定位,软件的基本功能2运行代码的方法:安装环境,启动命令3简要的使用说明4代码目录结构说明,更详细点可以说明软件的基本原理5常见问题说明 ====== ...
- python 基础 4.4 生成式 生成器 迭代器
一.生成式和生成器 列表生成式是python受欢迎的语法之一,通过一句简洁的语法就可以对一组元素进行过滤,还可以对得到的元素进行转换处理. #/usr/bin/python #coding=u ...
- PYDay10&11&12&13-常用模块:time|datetime|os|sys|pickle|json|xml|shutil|logging|paramiko、configparser、字符串格式化、py自动全局变量、生成器迭代器
1.py文件自动创建的全局变量 print(vars()) 返回值:{'__name__': '__main__', '__package__': None, '__loader__': <_f ...
随机推荐
- C语言回顾-二维数组
1.二维数组:是一个特殊的一维数组 完全初始化: 1)int a[2][3]={{1,2,3},{2,3,4}}; 2)连续赋值int a[2][3]={1,2,3,2,3,4}; 3)可以省略第一维 ...
- Remove-Azureaccount (Can't get Azure credentials to stick in Powershel)
https://social.technet.microsoft.com/forums/azure/en-US/260df055-7c4e-4ce2-8f8d-190ad20a4b76/cant-ge ...
- 总结/PSP初体验—排球计分程序1.0
要做一个排球计分程序,墨迹了很长时间才做出个的东西,过程很不爽: 功能:这个软件有两个页面,可以实现窗体A的部分变化控制窗体B的部分变化.A是操作人员使用看到的,B是投放给观众的,完全由A操控: 学到 ...
- 003_关于IntellJ IDE 2016 1. 4的使用
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.各类版本工具( ...
- sys,os,模块-正则表达式
# *__conding:utf-8__* """"我是注释""" sys,os模块 import sysimport os pr ...
- NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
今天调试SSM框架项目后台JSOn接口,报出来一个让人迷惑的错误:NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config 上网查了一下别人的博 ...
- MySQL免安装数据库配置-Windows8.1
1. 解压Mysql压缩包,将包中my-default.ini复制一份,改名为my.ini,添加一下配置信息到my.ini: [client] port=3306 default-character- ...
- [转]hibernateTools工具安装及使用总结(eclipse 3.6)
转载地址:http://blueblood79.iteye.com/blog/773177 最近项目采用flex+spring+hibernate的框架开发,之前虽说有多年的Java开发经验了,但是一 ...
- 使用CSS3的background-size优化Sprites图显示
当我的Sprites图像是300px,如何指定background-size为32px呢?其实不难,只需要一点点数学计算,这是一个很初级的过程. 在我们的实例中,我们使用媒体社交图标.我想让他们都按1 ...
- [原]ComFriendlyWaitForSingleObject
structThreadParam { unsignedint p1;// +00h ebp-24h unsignedint p2;// +04h ebp-20h unsignedint cookie ...