python中遍历的技巧
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中遍历的技巧相关的知识,希望对你有一定的参考价值。
遍历的技巧
遍历一个序列时,使用enumerate()函数可以同时得到索引和对应的值。
>>> for i, v in enumerate([‘tic‘, ‘tac‘, ‘toe‘]):
... print i, v
...
0 tic
1 tac
2 toe
同时遍历两个或更多的序列,使用zip()函数可以成对读取元素。
>>> questions = [‘name‘, ‘quest‘, ‘favorite color‘]
>>> answers = [‘lancelot‘, ‘the holy grail‘, ‘blue‘]
>>> for q, a in zip(questions, answers):
... print ‘What is your {0}? It is {1}.‘.format(q, a)
...
What is your name? It is lancelot.
What is your quest? It is the holy grail.
What is your favorite color? It is blue.
要反向遍历一个序列,首先正向生成这个序列,然后调用 reversed() 函数。
>>> for i in reversed(xrange(1,10,2)):
... print i
...
9
7
5
3
1
要按排序顺序循环一个序列,请使用sorted()函数,返回一个新的排序的列表,同时保留源不变。
>>> basket = [‘apple‘, ‘orange‘, ‘apple‘, ‘pear‘, ‘orange‘, ‘banana‘]
>>> for f in sorted(set(basket)):
... print f
...
apple
banana
orange
pear
遍历字典时,使用iteritems()方法可以同时得到键和对应的值。
>>> knights = {‘gallahad‘: ‘the pure‘, ‘robin‘: ‘the brave‘}
>>> for k, v in knights.iteritems():
... print k, v
...
gallahad the pure
robin the brave
若要在循环内部修改正在遍历的序列(例如复制某些元素),建议您首先制作副本。在序列上循环不会隐式地创建副本。切片表示法使这尤其方便:
>>> words = [‘cat‘, ‘window‘, ‘defenestrate‘]
>>> for w in words[:]: # Loop over a slice copy of the entire list.
... if len(w) > 6:
... words.insert(0, w)
...
>>> words
[‘defenestrate‘, ‘cat‘, ‘window‘, ‘defenestrate‘]
以上是关于python中遍历的技巧的主要内容,如果未能解决你的问题,请参考以下文章