• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

举例讲解如何在Python编程中进行迭代和遍历

python 搞代码 4年前 (2022-01-07) 22次浏览 已收录 0个评论

这篇文章主要介绍了举例讲解如何在Python编程中进行迭代和遍历,是Python入门学习中的基础知识,需要的朋友可以参考下

迭代
首先理解下什么是迭代,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.5 print "hello.word!" 

用上面这样方式来读取文件内容的话,速度很快,内存占用也比较低,特别适合操作大文件.

下面这个方式适合操作一些小的文件,速度和效率没有上面的好,所以建议以后操作文件的话,尽量用上面的。

 >>> for i in open('hello.py').readlines(): ...     print i ... #!/usr/bin/python2.5 print "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 "", line 1, in  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 <div style="color:transparent">来源gaodai.ma#com搞#代!码网</div>range(10): ...    res.append(x+10) ... >>> res [10, 11, 12, 13, 14, 15, 16, 17, 18, 19] 

从上面可以看出,python列表解析比手动的for 更加精简,而且运行的更快(往往速度回快一倍),因为他们的迭代在解析器内部是以C语言的速度执行的,而不是以手动python代码执行的,特别对于较大的数据集合,这是使用列表解析的一个主要的性能优点.

遍历
1.通过序列取元素的方法进行遍历

 [email protected]:python# vim 3.py 
 #!/usr/bin/python2.5 for i in 'hello':  #序列里的字符串 print i, y = [1,2,3,4,5,6]  #列表 for i in y: print i, 

 [email protected]:python# python 3.py 
 h e l l o 1 2 3 4 5 6 

2.通过序列本身偏移指数(索引)的方法进行遍历

也就是迭代序列索引,注:迭代,重复执行一条指令.

 [email protected]:python# vim 3.py 
 #!/usr/bin/python2.5 x='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], 
 [email protected]:python# python 3.py 
 h e l l o 1 2 3 4 5 6 

字典有2种方式取到其值:

1.先取字典key,在取索引的值

 [email protected]:python# vim 5.py 
 #!/usr/bin/python2.5 z = {1:'a',2:'b',3:'c'} for i in z: print z[i] 
 [email protected]:python# python 5.py 
 a b c 

2.通过字典items方法,获取所有键值对,在利用元组拆分的方法获得对应值.

 [email protected]:python# cat 5.py 
 #!/usr/bin/python2.5 z = {1:'a',2:'b',3:'c'} print z.items() for m,n in z.items(): print m,n 

 [email protected]:python# python 5.py

 [(1, 'a'), (2, 'b'), (3, 'c')] 1 a 2 b 3 c

以上就是举例讲解如何在Python编程中进行迭代和遍历的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:举例讲解如何在Python编程中进行迭代和遍历

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址