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搭建简易服务器分析与实现
Dec 15 Python
Python实现的检测web服务器健康状况的小程序
Sep 17 Python
python实现无证书加密解密实例
Oct 27 Python
关于你不想知道的所有Python3 unicode特性
Nov 28 Python
Django验证码的生成与使用示例
May 20 Python
基于python 字符编码的理解
Sep 02 Python
详解Python map函数及Python map()函数的用法
Nov 16 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
Python微信公众号开发平台
Jan 25 Python
python3实现网络爬虫之BeautifulSoup使用详解
Dec 19 Python
Django框架模板介绍
Jan 15 Python
python批量识别图片指定区域文字内容
Apr 30 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 daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
判断ie的两种简单方法
2013/08/12 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
点击标签切换和自动切换DIV选项卡
2014/08/10 Javascript
避免jQuery名字冲突 noConflict()方法
2016/07/30 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
Angular.js中数组操作的方法教程
2017/07/31 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python实现单词翻译功能
2017/06/06 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python第三方Window模块文件的几种安装方法
2018/11/22 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
python使用pymongo与MongoDB基本交互操作示例
2020/04/09 Python
一款纯css3实现的响应式导航
2014/10/31 HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
如何删除一个表里面的重复行
2013/07/13 面试题
Ref与out有什么不同
2012/11/24 面试题
办理退休介绍信
2014/01/09 职场文书
校园歌手大赛策划书
2014/01/17 职场文书
小学开学寄语
2014/01/19 职场文书
老同学聚会感言
2014/02/23 职场文书
大队委竞选演讲稿
2014/04/28 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
司机岗位职责范本
2015/04/10 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js
MySQL范围查询优化的场景实例详解
2022/06/10 MySQL