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文件及目录操作实例详解
Jun 04 Python
python字典快速保存于读取的方法
Mar 23 Python
django rest framework 数据的查找、过滤、排序的示例
Jun 25 Python
Python中logging.NullHandler 的使用教程
Nov 29 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
树莓派安装OpenCV3完整过程的实现
Oct 10 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
python实现ftp文件传输系统(案例分析)
Mar 20 Python
Python多个装饰器的调用顺序实例解析
May 22 Python
django使用channels实现通信的示例
Oct 19 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 Python
使用pipenv管理python虚拟环境的全过程
Sep 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学习之PHP表达式
2006/10/09 PHP
PHP URL路由类实例
2013/11/12 PHP
Codeigniter+PHPExcel实现导出数据到Excel文件
2014/06/12 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
PHP使用ODBC连接数据库的方法
2015/07/18 PHP
YII框架关联查询操作示例
2019/04/29 PHP
发现的以前不知道的函数
2006/09/19 Javascript
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
JS自动缩小超出大小的图片
2012/10/12 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
Jquery中offset()和position()的区别分析
2015/02/05 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
jquery实现直播弹幕效果
2019/11/28 jQuery
[02:42]2014DOTA2国际邀请赛 三冰专访:我会打到Ti20
2014/07/13 DOTA
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
python 实现在一张图中绘制一个小的子图方法
2019/07/07 Python
Python Threading 线程/互斥锁/死锁/GIL锁
2019/07/21 Python
python 创建一维的0向量实例
2019/12/02 Python
python中的split()函数和os.path.split()函数使用详解
2019/12/21 Python
Python 如何批量更新已安装的库
2020/05/26 Python
如何理解python中数字列表
2020/05/29 Python
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
Kivari官网:在线购买波西米亚服装
2018/10/29 全球购物
银行见习期自我鉴定
2014/01/29 职场文书
自我推荐信范文
2014/05/09 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
委托书的样本
2015/01/28 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python