您的位置:首页 > 编程语言 > Python开发

Python 索引迭代

2015-12-14 21:37 676 查看
1、使用enumerate函数

L = ['Adam', 'Lisa', 'Bart', 'Paul']


for index, name in enumerate(L):


print index + 1, '-', name.lower()


[/code]2、使用zip函数
for index, name in zip(range(1, len(L)+1), L):


print index, '-', name


[/code]3、dict元素迭代访问

d = {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}


for (key, value) in d.items():

print("%s: %s" % (key, value))


for key in d:

print("%s: %s" % (key, d[key]))


for key, value in zip(d.keys(), d.values()):

print("%s: %s" % (key, value))

[/code]如果仔细阅读Python的文档,还可以发现,dict除了values()方法外,还有一个 itervalues() 方法,用 itervalues() 方法替代 values() 方法,迭代效果完全一样。
for key, value in zip(d.iterkeys(), d.itervalues()):

print("%s: %s" % (key, value))

[/code]那这两个方法有何不同之处呢?

1. values() 方法实际上把一个 dict 转换成了包含 value 的list。

2. 但是 itervalues() 方法不会转换,它会在迭代过程中依次从 dict 中取出 value,所以 itervalues() 方法比 values() 方法节省了生成 list 所需的内存。

3. 打印 itervalues() 发现它返回一个 <dictionary-valueiterator> 对象,这说明在Python中,for 循环可作用的迭代对象远不止 list,tuple,str,unicode,dict等,任何可迭代对象都可以作用于for循环,而内部如何迭代我们通常并不用关心。

来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: