Python迭代器与生成器
一、迭代器(迭代取值的工具)
1、认识iter()方法和next()方法
>>> a
[1, 2, 3, 4, 5, 6]
>>> iter(a) #a具有iter方法,a是可迭代对象
<list_iterator object at 0x00000200BD94AC80>
>>> i = iter(a) #实例化迭代器,使i作为a的迭代器对象
>>> i
<list_iterator object at 0x00000200BD94ACB0>
>>> next(i) #使用迭代器i中的next方法进行迭代取值
1
>>> i
<list_iterator object at 0x00000200BD94ACB0> #i取值不同,但是内存位置不变,这就是迭代
>>> next(i) #使用迭代器i中的next方法进行迭代取值
2
>>> i
<list_iterator object at 0x00000200BD94ACB0>
注意:可迭代对象为元组、字符串、列表、字典、集合、文件;迭代器的实例化就称为迭代器对象
2、可迭代对象(内置iter()方法的对象);迭代器对象(既有iter()方法又有next()方法的对象)
iter()用于实例化迭代器对象,例如使用for循环对可迭代对象进行遍历返回的结果,此时的for循环中就已经封装好了iter()和next()方法。
a = (1231241,'dasda','sda') #定义可迭代对象 print(type(a)) for i in a : #实例化迭代器,使i作为迭代器对象,并使用i对可迭代对象a遍历print(i)
输出结果:
<class 'tuple'>
1231241
dasda
sda
注意:字典的迭代比较特殊,只遍历键,不遍历值
a = {'mgmtIP': '10.0.0.1', 'user': 'admin', 'password': 'admin'} print(type(a)) for i in a :print(i)
输出结果:
<class 'dict'>
mgmtIP
user
password
二、生成器(使用了yield方法的函数都是生成器)
def range(n): #定义一个名称为range的方法 print('开始代入迭代对象') i = 0while i < n : print('对比条件语句') yield i #依靠yield来记录每次生成器取值,方便下次调用本次的yield值 print(i)i += 1print('结束循环')a = range(9) #实例化range方法,n=9 print(a) #输出a print(next(a)) print('-'*20) print(next(a)) print('-'*20) print(next(a)) print('-'*20)
输出结果:
<generator object range at 0x0000016A95E39C40> #a为生成器对象
开始代入迭代对象
对比条件语句
0 #print(next(a))输出的结果
-------------------- #此时代码运行到yield后结束,保存本次的迭代对象值,供下次迭代取值
0 #print(i)输出的结果,也就是上一次记录的迭代值
结束循环
对比条件语句
1 #print(next(a))输出的结果
-------------------- #此时代码在上次yield后继续运行,直到运行到本次yield后结束
1
结束循环
对比条件语句
2
--------------------
进程已结束,退出代码0
Python迭代器与生成器相关推荐
- 简单介绍python迭代器和生成器
这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...
- python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍
Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...
- python迭代器与生成器答案_史上最全 Python 迭代器与生成器
原标题:史上最全 Python 迭代器与生成器 作者:浪子燕青 链接:http://www.langzi.fun/迭代器与生成器.html 迭代器与可迭代对象 概念 迭代器:是访问数据集合内元素的一种 ...
- 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器
前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...
- Python迭代器和生成器详解(包括yield详解)
文章目录 一.迭代器 1. 可迭代对象(Iterable) 2. 迭代器对象(Iterator) 3. for 循环原理 4. 迭代器的优缺点 二.生成器 1. yield 原理 2. yield 和 ...
- 全面理解Python迭代器和生成器
| 在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知 ...
- python 列表生成器放while_史上最全 Python 迭代器与生成器
原标题:史上最全 Python 迭代器与生成器 转自:浪子燕青 http://www.langzi.fun/迭代器与生成器.html 概念 迭代器:是访问数据集合内元素的一种方式,一般用来遍历数据,但 ...
- python迭代器与生成器实际用途_python迭代器和生成器
python迭代器和生成器 一.迭代器 1.什么是迭代器 说迭代器之前有个相关的名词需要介绍: 可迭代对象:只要定义了iter()方法,我们就说该对象是可迭代对象,并且可迭代对象能提供迭代器. 在Py ...
- python迭代器和生成器_python中迭代器和生成器。
前言:很多python教程中,对python的解释不容易理解,本文记录自己的理解和体会,是对迭代器和生成器的初步理解. 迭代器: 迭代器的实质是实现了next()方法的对象,常见的元组.列表.字典都是 ...
- python迭代器两个基本方法可供参考_浅析python迭代器和生成器
可迭代对象 概念 一个对象(在Python里面一切都是对象)只要实现了只要实现了__iter__()方法,那么这个对象就是可迭代对象 常见的可迭代对象 集合或序列类型(如list.tuple.set. ...
最新文章
- [Swift]LeetCode2. 两数相加 | Add Two Numbers
- Arnold+Shave 渲染毛发
- Introduction mybatis
- Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像
- UWP图片编辑器(涂鸦、裁剪、合成)
- leetcode - 739. 每日温度
- 字符串在Java中_字符和字符串在Java中的旅程
- 华为云数据库携新品惊艳亮相2019华为全联接大会
- Codeforces Round #172 (Div. 2) C. Rectangle Puzzle 数学题几何
- k8s学习:WordPress + MySQL + PVC 构建一个博客网站
- 大型网站架构系列:负载均衡详解
- codeforces 459 E. Pashmak and Graph(dp)
- GBase 8a数据库Hash分布表和随机分布表hash索引的区别
- 【中国象棋人机对战】引入了AI算法,学习低代码和高代码如何混编并互相调用
- 分布式期末复习总结(林子雨老师)
- 常用WEB前端框架大全
- amazon linux ami root 密码,如何使用SecureCRT连接到亚马逊Amazon EC2 Linux AMI
- Python 画分布图
- 申请苹果开发者帐号傻瓜式教程
- python里的str.format_详解Python中的str.format方法
热门文章
- EAGAIN、EWOULDBLOCK、EINTR与非阻塞的理解
- 振动传感开关 震动唤醒功能YTJM-CGQ-16.25vibration sensor参数介绍
- CSUST 2005 修仙 ( dp )
- ​力扣解法汇总856. 括号的分数
- maven中的groupId是什么
- PCA方法的分解过程_协方差矩阵+特征值分解+降维投影
- 解决电脑连上蓝牙时音量过大问题。
- iOS内购IAP(In App Purchases)入门
- php html encode
- obj[“key“]与obj.key