时间:2021-05-22
迭代
首先理解下什么是迭代,python中所有从左往右扫面对象的方式都是可迭代的
有哪些方式是可迭代的:
1.文件操作
我们读取文件的时候,会用到一个readline()方法,其实它就是一个迭代器,它会返回当前的数据,然后自动的调用内置的next()方法来让文件的读取头自动的移动到当前的下面一行,准备下次的读取,到达文件末尾时,就会返回空字符串.
>>> f=open('hello.py')>>> f.readline()'#!/usr/bin/python2.5\n'>>> f.readline()'print "hello.word!"\n'>>> f.readline()'\n'>>> f.readline()'' >>> for i in open('hello.py'):... print(i)... #!/usr/bin/python2.5print "hello.word!"用上面这样方式来读取文件内容的话,速度很快,内存占用也比较低,特别适合操作大文件.
下面这个方式适合操作一些小的文件,速度和效率没有上面的好,所以建议以后操作文件的话,尽量用上面的。
>>> for i in open('hello.py').readlines():... print i... #!/usr/bin/python2.5print "hello.word!"read方法和readline方法,
read()方法把整个文件的内容放到字符串里
readline()方法则把文件的内容按照行为单位放到列表里。
一般要替换文件里的某个字符的话,最好有readline,然后用循环把一行一行内容循环出来,再查找替换,这样效率比整个读到一个字符串里来查找匹配效果更高。
2 for循环
例如:
>>> for i in range(5):... print(i)...它中间处理的过程和下面的是一样的:
>>> L=[0,1,2,3,4]>>> I=iter(L)>>> I.next()0>>> I.next()1>>> I.next()2>>> I.next()3>>> I.next()4>>> I.next()Traceback (most recent call last): File "<stdin>", line 1, in <module>StopIteration每次调用迭代器调用next()方法返回结果,并让文件指针往下移动一行,最后已StopIteration异常结束迭代。
3.列表解析:
相比python for循环速度会快很多
例如:
>>> L=[x+10 for x in range(10)]>>> L[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
python会在解释器里对range(10)进行迭代,依次把列表里的内容取出来,赋值给最左边的x,然后执行x+10的操作,
并且把执行好的结果保存在列表里。等range(10)迭代完以后就新生成了一个列表,结果就是[10,11,12,13,14,15,16,17,18,19]
从上面可以看出,这也是建立python 列表的一个方法。
上面例子也可以用for循环来实现.
>>> res=[]>>> for x in range(10):... res.append(x+10)... >>> res[10, 11, 12, 13, 14, 15, 16, 17, 18, 19]从上面可以看出,python列表解析比手动的for 更加精简,而且运行的更快(往往速度回快一倍),因为他们的迭代在解析器内部是以C语言的速度执行的,而不是以手动python代码执行的,特别对于较大的数据集合,这是使用列表解析的一个主要的性能优点.
遍历
1.通过序列取元素的方法进行遍历
2.通过序列本身偏移指数(索引)的方法进行遍历
也就是迭代序列索引,注:迭代,重复执行一条指令.
root@10.1.6.200:python# vim 3.py #!/usr/bin/python2.5x='hello'for i in range(len(x)): print x[i] y = [1,2,3,4,5,6]for i in range(len(y)): print y[i],root@10.1.6.200:python# python 3.py h e l l o 1 2 3 4 5 6字典有2种方式取到其值:
1.先取字典key,在取索引的值
root@10.1.6.200:python# vim 5.py #!/usr/bin/python2.5z = {1:'a',2:'b',3:'c'}for i in z: print z[i]root@10.1.6.200:python# python 5.py abc2.通过字典items方法,获取所有键值对,在利用元组拆分的方法获得对应值.
root@10.1.6.200:python# cat 5.py #!/usr/bin/python2.5z = {1:'a',2:'b',3:'c'}print z.items()for m,n in z.items(): print m,n声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
什么是python的迭代如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。(在
介绍本文主要介绍Python中迭代的基本知识和使用什么是迭代在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tup
本文实例讲述了python使用zip同时迭代多个序列。分享给大家供大家参考,具体如下:zip可以平行地遍历多个迭代器python3中zip相当于生成器,遍历过程
如何在双python下设置python3为默认在C:\Program下举例第一步安装好python2和python3后设置好环境变量第二步去掉python2根目
前言本文主要介绍的是Python如何使用zip函数同时遍历多个迭代器,文中的版本为Python3,zip函数是Python内置的函数。下面话不多说,来看详细的内