生成器与迭代器。。。

#li=[11,22,33,44,55,66]#result=filter(lambda a:a>22,li)#print(result)#具有生成指定条件的内容的对象

#生成器是使用函数 创造的

##def hhh(): #   return 123

#fff=hhh()

#def yyy():#在普通函数中加上yield就是一个生成器了,  #  print(1111)  # yield 1   # print(2222)  #  yield 2  #  print(3333) #   yield 3#ret=yyy()#r=ret.__next__()#进入函数找到yield,获取yield后面的数据#print(r)#r1=ret.__next__()#print(r1)#r2 = ret.__next__()#print(r2)#生成器不会立即执行,#r3=ret.__next__()
时间: 2024-10-20 14:00:45

生成器与迭代器。。。的相关文章

Python中生成器和迭代器的功能介绍

生成器和迭代器的功能介绍 1. 生成器(generator) 1. 赋值生成器 1. 创建 方法:x = (variable for variable in iterable) 例如:x = (i for i in range(10)) print(x) >>> <generator object <genexpr> at 0x00000000006B85C8> 返回值:generator #使用元祖推导式的时候回变成一个生成器. 2. 调用 方法:x.__nex

python成长之路12——生成器和迭代器

一. 什么是生成器和迭代器  使用一个可迭代的对象比一个列表的好处: 还记得前面的filter和map吗,他们的返回值是一个相应的对象,我们可以循环这个对象,就取到了每个对象元素,而且取完之后,这个元素就没啦,一边取值,一边垃圾回收,这样相对于返回值直接是一个列表,就大大的节省了内存.因为如果返回值是一个长度几万几十万的列表,会一下子在内存里开辟那么多的内存空间,但是如果生成的是一个filter或者map对象,就没有这个担心啦. 我们用一个小例子来进行对比: 1 #要用python2.7的环境

Python之路【第六篇】:Python基础(22)——生成器和迭代器

迭代器 迭 代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们 很少在迭代途中往后退.另外,迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之 后,元素可以不存在或者被销毁.这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件. 特点: 访问者不需要关心迭代器内部的结构,仅需通过__next()__(Python2.x

Python学习之旅—Day07(生成器与迭代器)

前言 本篇博客主要专注于解决函数中的一个重要知识点--生成器与迭代器.不管是面试还是工作,生成器与迭代器在实际工作中的运用可以说是非常多,从我们第一天开始学习for循环来遍历字典,列表等数据类型时,我们就已经和生成器,迭代器打交道了!本篇博客从最基础的基本概念,例如容器,可迭代对象,生成器,迭代器的概念,到for循环是怎么工作的娓娓道来.希望本篇博客能够帮助大家切实掌握生成器与迭代器的使用与底层原理. 一.容器 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in

Python 第四篇:生成器与迭代器

一:生成器:Generator是具有next方法的一个函数, 一个函数在执行的过程中产生一个迭代器,这个函数就是生成器,迭代器里面内容需要使用函数__next__()方法去读取,如: def func(): with open("haproxy.cfg") as f: try: #正常执行的 时候 while True: line = next(f) print(line,end='') except StopIteration: #捕获到指定的异常抛出 print("已经完

Python之路-python(装饰器、生成器、迭代器、Json &amp; pickle 数据序列化、软件目录结构规范)

装饰器: 首先来认识一下python函数, 定义:本质是函数(功能是装饰其它函数),为其它函数添加附件功能        原则:        1.不能修改被装饰的函数的源代码.        2.不能修改被装饰的函数的调用方式. 1 def test(): 2 print('test') 3 print(test ) #表示是函数 4 test() #表示执行foo函数 <function test at 0x00595660>#表示的是函数的内存地址test#函数test执行结果 简单的装

python(七)字符串格式化、生成器与迭代器

字符串格式化 Python的字符串格式化有两种方式:百分号方式.format方式 1.百分号的方式 %[(name)][flags][width].[precision]typecode (name)      可选,用于选择指定的key flags          可选,可供选择的值有: +       右对齐:正数前加正好,负数前加负号: -        左对齐:正数前无符号,负数前加负号: 空格    右对齐:正数前加空格,负数前加负号: 0        右对齐:正数前无符号,负数前

python之路——第二块(装饰器、生成器、迭代器)

装饰器 def deco(count): def func(num): if num < 10: count(num) else: exit() return func @deco def count(num): a = 0 for i in range(num): a += i print(a) count(11) 注:deco(count)和下面的count(num)中的count只是一个形参,count可以用任何变量名替换,但是num是一定要有,因此传入的实参是被装饰函数,被装饰函数有nu

详解生成器、迭代器

1.迭代 要搞清楚什么关于迭代器,生成器,可迭代对象,前提是我们要理解何为迭代. 第一,迭代需要重复进行某一操作 第二,本次迭代的要依赖上一次的结果继续往下做,如果中途有任何停顿,都不能算是迭代. 下面来看看几个例子,你就会更能理解迭代的含义. # example1 # 非迭代count = 0while count < 10:    print("hello world")     count += 1 # example2 # 迭代count = 0while count &

【python-Day5(字符串格式化、生成器、迭代器)】

一.字符串格式化 方式1:占位符 --> % %[(name)][flags][width].[precision]typecode ● (name) 可选,用于选择指定的key ● flags 可选,可供选择的值有: + 右对齐:正数前加正好,负数前加负号: - 左对齐:正数前无符号,负数前加负号: 空格 右对齐:正数前加空格,负数前加负号: 0 右对齐:正数前无符号,负数前加负号:用0填充空白处 ● width 可选,占有宽度 ● .precision 可选,小数点后保留的位数 ● type