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 相关文章推荐
PyMongo安装使用笔记
Apr 27 Python
python清除字符串里非数字字符的方法
Jul 02 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
利用python爬取软考试题之ip自动代理
Mar 28 Python
python实现两张图片的像素融合
Feb 23 Python
python中图像通道分离与合并实例
Jan 17 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
Python是什么 Python的用处
May 26 Python
Python3内置函数chr和ord实现进制转换
Jun 05 Python
Python request中文乱码问题解决方案
Sep 17 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
Python中的xlrd模块使用整理
Jun 15 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
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
简介PHP的Yii框架中缓存的一些高级用法
2016/03/29 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
js parseInt("08")未指定进位制问题
2010/06/19 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
JavaScript实现弹出子窗口并传值给父窗口
2014/12/18 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
在localStorage中存储对象数组并读取的方法
2016/09/24 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
jquery实现输入框实时输入触发事件代码
2016/12/21 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
常见的在Python中实现单例模式的三种方法
2015/04/08 Python
Python网站验证码识别
2016/01/25 Python
Python 备份程序代码实现
2017/03/06 Python
Python排序算法之选择排序定义与用法示例
2018/04/29 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
Python命名空间及作用域原理实例解析
2020/08/12 Python
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
心理咨询承诺书
2014/05/20 职场文书
2016年全国爱牙日宣传活动总结
2016/04/05 职场文书
Redis中一个String类型引发的惨案
2021/07/25 Redis
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL