举例讲解如何在Python编程中进行迭代和遍历
|
迭代 有哪些方式是可迭代的: 1.文件操作 我们读取文件的时候,会用到一个readline()方法,其实它就是一个迭代器,它会返回当前的数据,然后自动的调用内置的next()方法来让文件的读取头自动的移动到当前的下面一行,准备下次的读取,到达文件末尾时,就会返回空字符串.
>>> f=open('hello.py')
>>> f.readline()
'#!/usr/bin/python2.5n'
>>> 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方法, 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异常结束迭代。
相比python for循环速度会快很多 例如: >>> L=[x+10 for x in range(10)] >>> L [10,11,12,13,14,15,16,17,18,19] 上面例子也可以用for循环来实现. >>> res=[] >>> for x in range(10): ... res.append(x+10) ... >>> res [10,19] 从上面可以看出,python列表解析比手动的for 更加精简,而且运行的更快(往往速度回快一倍),因为他们的迭代在解析器内部是以C语言的速度执行的,而不是以手动python代码执行的,特别对于较大的数据集合,这是使用列表解析的一个主要的性能优点. 遍历 root@10.1.6.200:python# vim 3.py #!/usr/bin/python2.5 for i in 'hello': #序列里的字符串 print i,y = [1,4,5,6] #列表 for i in y: print i, root@10.1.6.200:python# python 3.py h e l l o 1 2 3 4 5 6 2.通过序列本身偏移指数(索引)的方法进行遍历 也就是迭代序列索引,注:迭代,重复执行一条指令. root@10.1.6.200:python# vim 3.py #!/usr/bin/python2.5 x='hello' for i in range(len(x)): print x[i] y = [1,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.5
z = {1:'a',2:'b',3:'c'}
for i in z:
print z[i]
root@10.1.6.200:python# python 5.py a b c 2.通过字典items方法,获取所有键值对,在利用元组拆分的方法获得对应值. root@10.1.6.200:python# cat 5.py
#!/usr/bin/python2.5
z = {1:'a',3:'c'}
print z.items()
for m,n in z.items():
print m,n
root@10.1.6.200:python# python 5.py [(1,'a'),(2,'b'),(3,'c')] 1 a 2 b 3 c (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
