一、迭代器(迭代取值的工具)

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迭代器与生成器相关推荐

  1. 简单介绍python迭代器和生成器

    这篇文章主要介绍了Python中的迭代器和生成器,涉及到Python中很多重要的特性,需要的朋友可以参考下,希望能够给你带来帮助 python迭代器和生成器 1.迭代器 这里用字典示例 while T ...

  2. python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍

    Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...

  3. python迭代器与生成器答案_史上最全 Python 迭代器与生成器

    原标题:史上最全 Python 迭代器与生成器 作者:浪子燕青 链接:http://www.langzi.fun/迭代器与生成器.html 迭代器与可迭代对象 概念 迭代器:是访问数据集合内元素的一种 ...

  4. 五分钟学会python函数_五分钟带你搞懂python 迭代器与生成器

    前言 大家周末好,今天给大家带来的是Python当中生成器和迭代器的使用. 我当初第一次学到迭代器和生成器的时候,并没有太在意,只是觉得这是一种新的获取数据的方法.对于获取数据的方法而言,我们会一种就 ...

  5. Python迭代器和生成器详解(包括yield详解)

    文章目录 一.迭代器 1. 可迭代对象(Iterable) 2. 迭代器对象(Iterator) 3. for 循环原理 4. 迭代器的优缺点 二.生成器 1. yield 原理 2. yield 和 ...

  6. 全面理解Python迭代器和生成器

    | 在Python中,很多对象都是可以通过for语句来直接遍历的,例如list.string.dict等等,这些对象都可以被称为可迭代对象.至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知 ...

  7. python 列表生成器放while_史上最全 Python 迭代器与生成器

    原标题:史上最全 Python 迭代器与生成器 转自:浪子燕青 http://www.langzi.fun/迭代器与生成器.html 概念 迭代器:是访问数据集合内元素的一种方式,一般用来遍历数据,但 ...

  8. python迭代器与生成器实际用途_python迭代器和生成器

    python迭代器和生成器 一.迭代器 1.什么是迭代器 说迭代器之前有个相关的名词需要介绍: 可迭代对象:只要定义了iter()方法,我们就说该对象是可迭代对象,并且可迭代对象能提供迭代器. 在Py ...

  9. python迭代器和生成器_python中迭代器和生成器。

    前言:很多python教程中,对python的解释不容易理解,本文记录自己的理解和体会,是对迭代器和生成器的初步理解. 迭代器: 迭代器的实质是实现了next()方法的对象,常见的元组.列表.字典都是 ...

  10. python迭代器两个基本方法可供参考_浅析python迭代器和生成器

    可迭代对象 概念 一个对象(在Python里面一切都是对象)只要实现了只要实现了__iter__()方法,那么这个对象就是可迭代对象 常见的可迭代对象 集合或序列类型(如list.tuple.set. ...

最新文章

  1. [Swift]LeetCode2. 两数相加 | Add Two Numbers
  2. Arnold+Shave 渲染毛发
  3. Introduction mybatis
  4. Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像
  5. UWP图片编辑器(涂鸦、裁剪、合成)
  6. leetcode - 739. 每日温度
  7. 字符串在Java中_字符和字符串在Java中的旅程
  8. 华为云数据库携新品惊艳亮相2019华为全联接大会
  9. Codeforces Round #172 (Div. 2) C. Rectangle Puzzle 数学题几何
  10. k8s学习:WordPress + MySQL + PVC 构建一个博客网站
  11. 大型网站架构系列:负载均衡详解
  12. codeforces 459 E. Pashmak and Graph(dp)
  13. GBase 8a数据库Hash分布表和随机分布表hash索引的区别
  14. 【中国象棋人机对战】引入了AI算法,学习低代码和高代码如何混编并互相调用
  15. 分布式期末复习总结(林子雨老师)
  16. 常用WEB前端框架大全
  17. amazon linux ami root 密码,如何使用SecureCRT连接到亚马逊Amazon EC2 Linux AMI
  18. Python 画分布图
  19. 申请苹果开发者帐号傻瓜式教程
  20. python里的str.format_详解Python中的str.format方法

热门文章

  1. EAGAIN、EWOULDBLOCK、EINTR与非阻塞的理解
  2. 振动传感开关 震动唤醒功能YTJM-CGQ-16.25vibration sensor参数介绍
  3. CSUST 2005 修仙 ( dp )
  4. ​力扣解法汇总856. 括号的分数
  5. maven中的groupId是什么
  6. PCA方法的分解过程_协方差矩阵+特征值分解+降维投影
  7. 解决电脑连上蓝牙时音量过大问题。
  8. iOS内购IAP(In App Purchases)入门
  9. php html encode
  10. obj[“key“]与obj.key