初学 Python(十四)——生成器

初学 Python(十四)——生成器

  初学 Python,主要整理一些学习到的知识点,这次是生成器。

# -*- coding:utf-8 -*-  

‘‘‘‘‘
生成式的作用:
减少内存占有,不用一次性
创建list中所有的元素,而
是在需要的时候创建
‘‘‘  

#创建generator有2种方式  

#第一种将列表表达式中的[]改为()即可  

g = (x*x for x in range(10))  

print g
for n in g:
    print n  

#第二种,关键字yield  

def fab(max):
    n,a,b = 0,0,1
    while n < max:
        yield b
        a,b = b,a+b
        n = n+1
g1 = fab(6)  

for n in g1:
    print n  

‘‘‘‘‘
再说区别:
为什么加了一个yield就变成了生成器?
因为yield一加,就不再像函数一样顺序执行
而是每次调用时,执行到yield时返回,下次再
调用时从yield后面的语句开始执行
‘‘‘  
时间: 2024-10-14 02:24:12

初学 Python(十四)——生成器的相关文章

selenium-webdriver(python) (十四) -- webdriver原理(转载虫师自动化)

selenium-webdriver(python) (十四) -- webdriver原理 2013-08-22 12:55 by 虫师, 13926 阅读, 12 评论, 收藏, 编辑 之前看乙醇视频中提到,selenium 的ruby 实现有一个小后门,在代码中加上$DEBUG=1 ,再运行脚本的过程中,就可以看到客户端请求的信息与服务器端返回的数据:觉得这个功能很强大,可以帮助理解webdriver的运行原理. 后来查了半天,python并没有提供这样一个方便的后门,不过我们可以通过代理

初学Python(四)——set

初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] s = set([1,1,2,3,4,5]) print d print s ''''' 打印出来的效果看出,多了一个set()后, list就变成了不能存储重复数据的类型了, 这叫set,不是list. ''' #添加元素 s.add(6) print s #删除元素 s.remove(6) p

初学Python(四)

十一.函数 Python中函数以def定义,用于实现某种功能,若是某段代码被多处使用,不妨将它定义成一个函数,或是它用于实现特定的功能,也可以将它定义成一个函数: 一个函数func(),func为函数名,是这个函数引用(指向函数的地址):而加上括号func()则表示执行这个函数: 在函数中定义的变量为局部变量,在函数体为不可引用它(在for循环中定义的变量,for循环体之外可引用): 函数的动态参数func(*args1, **args2),*args1会将传进来的参数以元组的形式存在args1

十四.生成器

2019-09-24-23:24:24 一.什么时生成器? 1.生成器的实质就是迭代器 二.生成器的获取方式 1.通过生成器函数 2.通过各种推导式获取生成器 3.通过数据转换获取生成器 三..案例 #这个是一个简单函数,怎样变成生成器呢? def func(): print("111") return 222 ret = func() print(ret) #将函数中的return换成yield就是生成器 def func(): print("111") yiel

初学python随笔——列表生成器、生成器和迭代器

列表生成器 # 常见的是range()创建一个数字的列表 >>>[ x*x for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] # 后边也可以加上判断语句 >>>[ x*x for x in range(10) if x%2 == 0] [0, 4, 16, 36, 64] # 字符也可以这么玩 >>> [m + n for m in 'ABC' for n in 'XYZ'] ['AX',

流畅python学习笔记:第十四章:迭代器和生成器

迭代器和生成器是python中的重要特性,本章作者花了很大的篇幅来介绍迭代器和生成器的用法. 首先来看一个单词序列的例子: import re re_word=re.compile(r'\w+') class Sentence(object):     def __init__(self,text):         self.text=text         self.word=re_word.findall(text)     def __getitem__(self, item):   

Python(四)装饰器、迭代器&生成器、re正则表达式、字符串格式化

本章内容: 装饰器 迭代器 & 生成器 re 正则表达式 字符串格式化 装饰器 装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志.性能测试.事务处理等.装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用.概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能. 先定义一个基本的装饰器: ########## 基本装饰器 ########## def orter(func):    #定义装饰器     de

第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mapping映射管理

第三百六十四节,Python分布式爬虫打造搜索引擎Scrapy精讲-elasticsearch(搜索引擎)的mapping映射管理 1.映射(mapping)介绍 映射:创建索引的时候,可以预先定义字段的类型以及相关属性elasticsearch会根据json源数据的基础类型猜测你想要的字段映射,将输入的数据转换成可搜索的索引项,mapping就是我们自己定义的字段数据类型,同时告诉elasticsearch如何索引数据以及是否可以被搜索 作用:会让索引建立的更加细致和完善 类型:静态映射和动态

Python进阶(三十四)-Python3多线程解读

Python进阶(三十四)-Python3多线程解读 线程讲解 ??多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度. 程序的运行速度可能加快. 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. ??线程在执行过程中与进程还是有区别的.每个独立