Python enumerate索引迭代代码解析


Posted in Python onJanuary 19, 2018

本文研究的主要是Python enumerate索引迭代的问题,具体介绍如下。

索引迭代

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,再迭代,就同时获得了索引和元素本身。

总结

以上就是本文关于Python enumerate索引迭代代码解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 Python
Python实现Const详解
Jan 27 Python
Python IDE PyCharm的基本快捷键和配置简介
Nov 04 Python
Python Web程序部署到Ubuntu服务器上的方法
Feb 22 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
用django-allauth实现第三方登录的示例代码
Jun 24 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
解决Pycharm的项目目录突然消失的问题
Jan 20 Python
你可能不知道的Python 技巧小结
Jan 29 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
如何利用python生成MD5并去重
Dec 07 Python
Matlab使用Plot函数实现数据动态显示方法总结
Feb 25 Python
5个很好的Python面试题问题答案及分析
Jan 19 #Python
Python3实现的画图及加载图片动画效果示例
Jan 19 #Python
Python实现将doc转化pdf格式文档的方法
Jan 19 #Python
python机器学习理论与实战(四)逻辑回归
Jan 19 #Python
python机器学习理论与实战(二)决策树
Jan 19 #Python
Python三种遍历文件目录的方法实例代码
Jan 19 #Python
python机器学习理论与实战(一)K近邻法
Jan 28 #Python
You might like
PHP中如何实现常用邮箱的基本判断
2014/01/07 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
深入理解PHP JSON数组与对象
2016/07/19 PHP
基于PHPexecl类生成复杂的报表表头示例
2016/10/14 PHP
jquery选择器使用详解
2014/04/08 Javascript
基于javascript实现页面加载loading效果
2020/09/15 Javascript
jQuery简单自定义图片轮播插件及用法示例
2016/11/21 Javascript
Bootstrap + AngularJS 实现简单的数据过滤字符查找功能
2017/07/27 Javascript
vue解决跨域路由冲突问题思路解析
2017/11/03 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
详解vue中axios的使用与封装
2019/03/20 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
[00:44]2016完美“圣”典 风云人物:Mikasa宣传片
2016/12/07 DOTA
python实现外卖信息管理系统
2018/01/11 Python
python3 cvs将数据读取为字典的方法
2018/12/22 Python
python+opencv实现霍夫变换检测直线
2020/10/23 Python
100行Python代码实现每天不同时间段定时给女友发消息
2019/09/27 Python
python yield关键词案例测试
2019/10/15 Python
Pytorch 实现权重初始化
2019/12/31 Python
python 的numpy库中的mean()函数用法介绍
2020/03/03 Python
Python装饰器用法与知识点小结
2020/03/09 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python中线程和进程有何区别
2020/06/17 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
《孙权劝学》教学反思
2014/04/23 职场文书
小露珠教学反思
2014/04/30 职场文书
物流管理专业推荐信
2014/09/06 职场文书
工作证明范本(2篇)
2014/09/14 职场文书
国王的演讲观后感
2015/06/03 职场文书
导游词之包公祠
2019/11/25 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python
python区块链实现简版工作量证明
2022/05/25 Python