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根据路径导入模块的方法
Sep 30 Python
python获取文件后缀名及批量更新目录下文件后缀名的方法
Nov 11 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
Python实现好友全头像的拼接实例(推荐)
Jun 24 Python
Python书单 不将就
Jul 11 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
python中如何设置代码自动提示
Jul 15 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
使用sublime text3搭建Python编辑环境的实现
Jan 12 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打造的tab选项卡效果代码(不用js)
2010/12/29 PHP
供参考的 php 学习提高路线分享
2011/10/23 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
ucenter通信原理分析
2015/01/09 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
CI框架(CodeIgniter)公共模型类定义与用法示例
2017/08/10 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
2010/08/30 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
JavaScript蒙板(model)功能的简单实现代码
2016/08/04 Javascript
jQuery Chosen通用初始化
2017/03/07 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
keep-Alive搭配vue-router实现缓存页面效果的示例代码
2020/06/24 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
python sys.argv[]用法实例详解
2018/05/25 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
pycharm如何使用anaconda中的各种包(操作步骤)
2020/07/31 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
2021/01/25 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
.NET笔试题(20个问题)
2016/02/02 面试题
师德学习感言
2014/01/31 职场文书
幼儿园门卫岗位职责
2014/02/14 职场文书
体育比赛口号
2014/06/09 职场文书
大学生个人简历自荐信
2015/03/06 职场文书
公司员工离职感言
2015/08/03 职场文书
MySQL 语句执行顺序举例解析
2022/06/05 MySQL