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中列表生成式的用法
Mar 31 Python
举例讲解Linux系统下Python调用系统Shell的方法
Nov 07 Python
python使用pymysql实现操作mysql
Sep 13 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
查看django版本的方法分享
May 14 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
浅析Python与Mongodb数据库之间的操作方法
Jul 01 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
pytorch forward两个参数实例
Jan 17 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 Python
pandas map(),apply(),applymap()区别解析
Feb 24 Python
Python语法学习之进程的创建与常用方法详解
Apr 08 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初学者头疼十四条问题大总结
2008/11/12 PHP
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
浅谈php函数serialize()与unserialize()的使用方法
2014/08/19 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
CodeIgniter框架钩子机制实现方法【hooks类】
2018/08/21 PHP
jquery序列化方法实例分析
2015/06/10 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
jQuery EasyUI datagrid在翻页以后仍能记录被选中行的实现代码
2016/08/15 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
浅谈React Native Flexbox布局(小结)
2018/01/08 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
2018/11/25 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
使用python分析git log日志示例
2014/02/27 Python
python中实现php的var_dump函数功能
2015/01/21 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
深入Python函数编程的一些特性
2015/04/13 Python
浅谈Python peewee 使用经验
2017/10/20 Python
写出二分查找算法的两种实现
2013/05/13 面试题
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
优秀求职信范文分享
2014/01/26 职场文书
精神文明建设标语
2014/06/16 职场文书
煤矿安全生产月活动总结
2014/07/05 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
HTML中的表单元素介绍
2022/02/28 HTML / CSS
MySQL为数据表建立索引的原则详解
2022/03/03 MySQL
《废话连篇——致新手》——chinapizza
2022/04/05 无线电