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 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
python的Tqdm模块的使用
Jan 10 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
Feb 15 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
Django缓存系统实现过程解析
Aug 02 Python
Python Django中间件,中间件函数,全局异常处理操作示例
Nov 08 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
Python实现寻找回文数字过程解析
Jun 09 Python
python集合能干吗
Jul 19 Python
基于python的matplotlib制作双Y轴图
Apr 20 Python
python获取对象信息的实例详解
Jul 07 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
桌面中心(二)数据库写入
2006/10/09 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
基于JavaScript实现点击页面任何位置返回
2016/08/31 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
[01:15]PWL S2开团时刻第二期——他们杀 我就白给
2020/11/25 DOTA
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
Python中模块string.py详解
2017/03/12 Python
基于Django框架利用Ajax实现点赞功能实例代码
2018/08/19 Python
python实现换位加密算法的示例
2018/10/14 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
python的移位操作实现详解
2019/08/21 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
使用Python给头像戴上圣诞帽的图像操作过程解析
2019/09/20 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
Java模拟试题
2014/11/10 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
汽车运用工程专业求职信
2014/06/18 职场文书
庆国庆活动总结
2014/08/28 职场文书
统计学教授推荐信
2014/09/18 职场文书
Pytest allure 命令行参数的使用
2021/04/18 Python
深入探讨opencv图像矫正算法实战
2021/05/21 Python
OpenCV实现普通阈值
2021/11/17 Java/Android
Python实现视频自动打码的示例代码
2022/04/08 Python
Python测试框架pytest高阶用法全面详解
2022/06/01 Python