首页 > 编程语言 >Python使用 - 生成器, yield的使用

Python使用 - 生成器, yield的使用

时间:2023-09-04 23:35:15浏览次数:82  
标签:Iterator Python 生成器 yield test print my gen

 

from collections.abc import Iterator

def test_yield(n):
    for i in range(n):
        yield i * 2  # 暂停在当前步骤, 返回值, 下次继续从暂停位置继续
    return -1

my_gen = test_yield(3)
print(type(my_gen), isinstance(my_gen, Iterator))  # <class 'generator'> True
for elem in my_gen: # 0 2 4
    print(elem, end=" ")

 

 while的方式遍历迭代器,通过StopIteration异常来确定是否没有元素了

from collections.abc import Iterator

def test_yield(n):
    for i in range(n):
        yield i * 2  # 暂停在当前步骤, 返回值, 下次继续从暂停位置继续
    return -1

my_gen = test_yield(3)
print(type(my_gen), isinstance(my_gen, Iterator))  # <class 'generator'> True

while True:
    try:
        print(next(my_gen), end=" ")  # 0 2 4
    except StopIteration as e:
        print()
        print(e)  # -1
    break

 

多个yield

from collections.abc import Iterator

def test_yield(n):
    for i in range(n):
        yield i * 2  # 暂停在当前步骤, 返回值, 下次继续从暂停位置继续
        yield i * 3
    return -1

my_gen = test_yield(3)
print(type(my_gen), isinstance(my_gen, Iterator))  # <class 'generator'> True
for elem in my_gen: # 0 0 2 3 4 6 
    print(elem, end=" ")

 

标签:Iterator,Python,生成器,yield,test,print,my,gen
From: https://www.cnblogs.com/sailJs/p/17672870.html

相关文章

  • python内置函数 - map, reduce, filter, sort
    1,map(fn,可迭代对象)参数fn为一个参数的函数lambda方式my_list=[2,3,4,5]result=map(lambdax:x*x,my_list)#返回元素平方值的迭代器print(type(result))#<class'map'>print(isinstance(result,collections.abc.Iterator))#Truenew_list=list(re......
  • Python时间序列分析苹果股票数据:分解、平稳性检验、滤波器、滑动窗口平滑、移动平均
    全文链接:https://tecdat.cn/?p=33550原文出处:拓端数据部落公众号什么是时间序列?时间序列是一系列按时间顺序排列的观测数据。数据序列可以是等间隔的,具有特定频率,也可以是不规则间隔的,比如电话通话记录。在进行投资和交易研究时,对于时间序列数据及其操作要有专业的理解。本文......
  • Python入门 - 推导式
    推导式是什么?用于创建容器对象的一种语法,主要用于创建list,dict,set,tuple。 1,list推导式遍历+条件+产生的元素,用[]包装产生的每一个元素,其中条件是可选的。my_list=[1,2,3]result=[elem+1foreleminmy_list]print(type(result),result)#<class'list......
  • python使用 - 匿名函数lambda
    例1fn=lambdax,y:x+yprint(type(fn))#<class'function'>print(fn(1,2))#3例2defadd(x,y):returnx+yprint(type(add))#<class'function'>print(add(1,2))#3 def方式和lambda方式功能是一样的,只是lambda更简洁,到底用哪个......
  • Python操作文本(.TXT)文件
    在Python中,我们可以使用内置的文件操作函数来读取、写入和操作文本文件。无论无论对文件做任何的操作,我们都需要使用 open()函数来打开文件,打开模式有只读、写入、追加三种模式。下面是使用Python操作文本文件的实例。读取文件要读取文本文件,我们需要使用open()函数来打开文件,并使......
  • python实现百钱百鸡问题​
    前言百钱百鸡问题作为一个经典的数学问题,利用python实现,其思路也是比较简单的,主要就是利用for循环语句通过枚举法,根据题目条件确定解的大致范围,并对此范围内的所有可能的解进行逐一验证。功能需求一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱。用百钱买百鸡,那么公鸡、母鸡和小鸡分......
  • python DAY 2 #9.4
    赋值方法: 字符串拼接中间要加+号 python中的除法是浮点数除法整除是//  是向下取整,而不是向0取整  2**3代表2的3次方 类型转换方法,非输出语句中,字符串只能与字符串一起拼接 输入:input()默认类型是个str,需要强制转换为int输入多个数的方法:#......
  • Python 遍历字典的若干方法
    哈喽大家好,我是咸鱼我们知道字典是Python中最重要且最有用的内置数据结构之一,它们无处不在,是语言本身的基本组成部分我们可以使用字典来解决许多编程问题,那么今天我们就来看看如何在Python中遍历字典全文内容:https://realpython.com/iterate-through-dictionary-python/p......
  • python中文件的操作
    文件的基本操作1.我们目前能够操作哪些类型的文件:.txt没有后缀名的文件"""将来学了openpyxl模块将支持操作:word、Excel、ppt"""2.如何操作文件""" 三步法: 1.打开文件(关键字open) 2.读或者写 3.关闭文件"""文件的路径: 相对路径绝对路径......
  • 【python自动化】pytest系列(下)
    pytest系列文章一共有四篇,本文为第三篇。公众号:梦无矶的测试开发之路,回复pytest可以领取对应资料本章知识点文章目录Pytest之fixture(1)fixture实现前/后置(2)fixture数据传递(3)fixture全局共享机制conftest.py(4)fixture嵌套Pytest之fixture示列代码使用装饰器的方式,scope参数是代表指......