python next()和iter()函数原理解析
这篇文章主要介绍了python next()和iter()函数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
我们首先要知道什么是可迭代的对象(可以用for循环的对象)Iterable:
一类:list,tuple,dict,set,str
二类:generator,包含生成器和带yield的generatoe function
而生成器不但可以作用于for,还可以被next()函数不断调用并返回下一个值,可以被next()函数不断返回下一个值的对象称为迭代器:Iterator
生成器都是Iterator对象,但list,dict,str是Iterable,但不是Iterator,要把list,dict,str等Iterable转换为Iterator可以使用iter()函数
next()用法:
next(iterator[, default])
- iterator -- 可迭代对象
- default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
>>> list_ = [1,2,3,4,5] >>> it = iter(list_) >>> next(it,'-1') >>> next(it,'-1') >>> next(it,'-1') >>> next(it,'-1') >>> next(it,'-1') >>> next(it,'-1') '-1'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python中的itertools的使用详解
今天了解了下python中内置模块itertools的使用,熟悉下,看能不能以后少写几个for,嘿嘿
-
python利用itertools生成密码字典并多线程撞库破解rar密码
脚本功能: 利用itertools生成密码字典(迭代器形式) 多线程并发从密码字典中取出密码进行验证 验证成功后把密码写入文件中保存 #!/usr/bin/env python # -*- coding: UTF-8 -*- # Author:Leslie-x import itertools as its import threading import rarfile import os words = '0123456789abcdefghijklmnopqrstuvwxyz' # 涉及到生
-
对Python 3.2 迭代器的next函数实例讲解
在python中,使用iter函数可以获得有序聚合类型的迭代器,我个人将迭代器理解为带有next指针的单向链表,获取到的迭代器为链表的表头,表头内容为空,next指针指向有序聚合类型的第一个元素.在访问链表最后一个元素的next指针时,python会报错StopIteration. Python3.x以上的版本在使用next函数时需要注意的是:next()函数在3.x以上的版本更改为__next__(). 使用for迭代器打印文件中的内容的代码如下: file_obj=open(r'E:\Pro
-
浅谈Python生成器generator之next和send的运行流程(详解)
对于普通的生成器,第一个next调用,相当于启动生成器,会从生成器函数的第一行代码开始执行,直到第一次执行完yield语句(第4行)后,跳出生成器函数. 然后第二个next调用,进入生成器函数后,从yield语句的下一句语句(第5行)开始执行,然后重新运行到yield语句,执行后,跳出生成器函数,后面再次调用next,依次类推. 下面是一个列子: def consumer(): r = 'here' for i in xrange(3): yield r r = '200 OK'+ str(i)
-
对python中的iter()函数与next()函数详解
list.tuple等都是可迭代对象,我们可以通过iter()函数获取这些可迭代对象的迭代器.然后我们可以对获取到的迭代器不断使⽤next()函数来获取下⼀条数据.iter()函数实际上就是调⽤了可迭代对象的 __iter__ ⽅法. >>> li = [11, 22, 33, 44, 55] >>> li_iter = iter(li) >>> next(li_iter) 11 >>> next(li_iter) 22 >&g
-
在Python中使用next()方法操作文件的教程
next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用.此方法返回下一个输入行,或引发StopIteration异常EOF时被命中. 与其它文件的方法,如ReadLine()相结合next()方法工作不正常.然而,usingseek()将文件重新定位到一个绝对位置将刷新预读缓冲器. 语法 以下是next()方法的语法: fileObject.next(); 参数 NA 返回值 此方法返回下一个输入行. 例子 下面的示例演示next()方法的使用. #!/
-
Python标准库itertools的使用方法
Python标准库itertools模块介绍 itertools是python内置的模块,使用简单且功能强大,这里尝试汇总整理下,并提供简单应用示例:如果还不能满足你的要求,欢迎加入补充. 使用Python标准库itertools只需简单一句导入:import itertools chain() 与其名称意义一样,给它一个列表如 lists/tuples/iterables,链接在一起:返回iterables对象. letters = ['a', 'b', 'c', 'd', 'e', 'f']
-
python中reader的next用法
python中有个csv包(build-in),该包有个reader,按行读取csv文件中的数据 reader.next()作用:打印csv文件中的第一行标题header (python3中的用法) allElectronicsData = open(r'C:/pydata/AllElectronics.csv', 'rt') reader = csv.reader(allElectronicsData) headers = next(reader) (python2中的用法) allElect
-
python使用writerows写csv文件产生多余空行的处理方法
初次接触python,学艺不精,第一次实战写一个文本处理的小程序时便遇到了头疼的问题. 先看代码: 生成的.CSV文件每两行之间都会多出一行空格(如下图),具体原因可参看点击打开链接 with open('E:\\test.csv','wt')as fout: cout=csv.DictWriter(fout,list_attrs_head )#list_attrs_head头属性列表 cout.writeheader() cout.writerows(list_words) 上面链接中的这位大
-
Python内置函数 next的具体使用方法
Python 3中的File对象不支持next()方法. Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目. 如果给定了默认值,则在迭代器耗尽返回此默认值,否则会引发StopIteration. 该方法可用于从文件对象读取下一个输入行. 语法 以下是next()方法的语法 - next(iterator[,default]) 参数 iterator − 要读取行的文件对象 default − 如果迭代器耗尽则返回此默认值. 如果没有给出此默认值,
随机推荐
- C语言程序设计50例(经典收藏)
- 由 element.appendChild(newNode) ,谈开去
- Spring Boot实现跨域访问实现代码
- 在Python中使用next()方法操作文件的教程
- Python中Selenium模拟JQuery滑动解锁实例
- javascript parseInt() 函数的进制转换注意细节
- asp.net自定义控件中注册Javascript问题解决方案
- python函数缺省值与引用学习笔记分享
- python使用socket进行简单网络连接的方法
- 最小asp后门程序
- Javascript基础 函数“重载” 详细介绍
- JavaScript制作简单的日历效果
- 深入认识JavaScript中的函数
- 让Apache支持shtml实现include文件解析的配置方法
- 详解Python3.1版本带来的核心变化
- 详解如何备份及恢复 Linux 文件权限
- CacheCls缓存的应用
- JS运动改变单物体透明度的方法分析
- SpringBoot2.0 ZipKin示例代码
- 详解使用python绘制混淆矩阵(confusion_matrix)