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中遍历的技巧的主要内容,如果未能解决你的问题,请参考以下文章

python中遍历的技巧

scrapy主动退出爬虫的代码片段(python3)

☆ 10个小技巧,让你的 Python 代码更加优雅~ ☆

VS中添加自定义代码片段——偷懒小技巧

Android课程---Android Studio使用小技巧:提取方法代码片段

《Python机器学习及实践》----模型实用技巧