当前位置:首页 > 软件开发学习 > Python学习 > 正文内容

PYTHON'S 索引迭代

admin5年前 (2016-01-24)Python学习931

PYTHON'S 索引迭代

Python中,迭代永远是取出元素本身,而非元素的索引。

对于有序集合,元素确实是有索引的。有的时候,我们确实想在 for 循环中拿到索引,怎么办?

方法是使用 enumerate()  函数

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

>>> for index, name in enumerate(L):
     ...  print index, '-', name 
     ...  0 - Adam 1 - Lisa 2 - Bart 3 - Paul

使用 enumerate() 函数,我们可以在for循环中同时绑定索引index和元素name。但是,这不是 enumerate()  的特殊语法。实际上,enumerate() 函数把:

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

变成了类似:

[(0, 'Adam'), (1, 'Lisa'), (2, 'Bart'), (3, 'Paul')]

因此,迭代的每一个元素实际上是一个tuple:

for t in enumerate(L):     
    index = t[0]     
    name = t[1]     
    print index, '-', name

如果我们知道每个tuple元素都包含两个元素,for循环又可以进一步简写为:

for index, name in enumerate(L):     
    print index, '-', name

这样不但代码更简单,而且还少了两条赋值语句。

可见,索引迭代也不是真的按索引访问,而是由 enumerate() 函数自动把每个元素变成 (index, element)  这样的tuple,再迭代,就同时获得了索引和元素本身。


扫描二维码推送至手机访问。

版权声明:本文由学无止境-开拓创新-ipvb学习网发布,如需转载请注明出处。

分享给朋友:

相关文章

学习PYTHON的几个中文网站

python中文网http://www.pythoner.cn/中谷教育python频道http://www.csvt.net/teampython爱好者http://www.pythonfan.or...

python学习网站www.liaoxuefeng.com

  用Python可以做什么?可以做日常任务,比如自动备份你的MP3;可以做网站,很多著名的网站包括YouTube就是Python写的;可以做网络游戏的后台,很多在线游戏的后台都是Python开发的。...

在Windows命令行中使用Python

  在Windows命令行中使用Python  如果你想要从Windows命令行调用Python,那么你需要先正确的设置PATH变量。  对于Windows 2000、XP、2003,点击控制面板-&...

python文档地址

文档首页https://docs.python.org/2.7/index.html教程地址https://docs.python.org/2.7/tutorial/index.htmlAn onli...

Python报错IndentationError: unindent does not match any outer indentation level

Python报错IndentationError: unindent does not match any outer indentation level

  IndentationError: unindent does not match any outer indentation level  应该是缩进问题,特别是把几个不同的源码拷到一块修改调式...

windows下面安装Python和pip终极教程

windows下面安装Python和pip终极教程

在大二的时候接触过一段时间的Python,最近又开始玩起了这门语言。总的来说,个人很喜欢Python的语言风格,但是这门语言对于windows并不算很友好,因为如果是初学者在windows环境下安装,...