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使用cookie库操保存cookie详解
Mar 03 Python
python解决汉字编码问题:Unicode Decode Error
Jan 19 Python
python实现分页效果
Oct 25 Python
Pyinstaller将py打包成exe的实例
Mar 31 Python
python pandas修改列属性的方法详解
Jun 09 Python
python字符串替换第一个字符串的方法
Jun 26 Python
python机器学习实现决策树
Nov 11 Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 Python
Python爬虫requests库多种用法实例
May 28 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
Python StringIO及BytesIO包使用方法解析
Jun 15 Python
python爬虫中的url下载器用法详解
Nov 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实现的简单压缩英文字符串的代码
2008/04/24 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP常用数组函数介绍
2014/07/28 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
深入php内核之php in array
2015/11/10 PHP
php字符串操作针对负值的判断分析
2016/07/28 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
yii2局部关闭(开启)csrf的验证的实例代码
2017/07/10 PHP
js跨域和ajax 跨域问题的实现思路
2009/09/05 Javascript
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
jQuery客户端分页实例代码
2013/11/18 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
JavaScript如何实现图片懒加载(lazyload) 提高用户体验(增强版)
2016/11/30 Javascript
使用get方式提交表单在地址栏里面不显示提交信息
2017/02/21 Javascript
jQuery插件echarts设置折线图中折线线条颜色和折线点颜色的方法
2017/03/03 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
vue3+typescript实现图片懒加载插件
2020/10/26 Javascript
vuex Module将 store 分割成模块的操作
2020/12/07 Vue.js
Vue看了就会的8个小技巧
2021/01/21 Vue.js
[01:53]3.19 DOTA2发布会 现场精彩Coser表演
2014/03/25 DOTA
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
python爬虫实现中英翻译词典
2019/06/25 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
利用CSS3的border-radius绘制太极及爱心图案示例
2016/05/17 HTML / CSS
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
军校大学生个人的自我评价
2014/02/17 职场文书
《蟋蟀的住宅》教学反思
2016/02/17 职场文书
linux下安装redis图文详细步骤
2021/12/04 Redis
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python