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读写Excel文件方法介绍
Nov 22 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
python的常用模块之collections模块详解
Dec 06 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
Python扫描端口的实现
Jan 25 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Python 把两层列表展开平铺成一层(5种实现方式)
Apr 07 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
法兰绒滤网冲泡
2021/03/03 冲泡冲煮
PHP中的正规表达式(二)
2006/10/09 PHP
array_multisort实现PHP多维数组排序示例讲解
2011/01/04 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
2018/10/12 PHP
Laravel中正确地返回HTTP状态码方法示例
2019/09/10 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
PHP isset()及empty()用法区别详解
2020/08/29 PHP
找出字符串中出现次数最多的字母和出现次数精简版
2012/11/07 Javascript
用按钮控制iframe显示的网页实现方法
2013/02/04 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
JavaScript中的函数的两种定义方式和函数变量赋值
2014/05/12 Javascript
jquery常用操作小结
2014/07/21 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
jQuery实现表单提交时判断的方法
2014/12/13 Javascript
JavaScript获取网页支持表单字符集的方法
2015/04/02 Javascript
简单的网页广告特效实例
2017/08/19 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
python3 读写文件换行符的方法
2018/04/09 Python
python中ASCII码字符与int之间的转换方法
2018/07/09 Python
pandas的排序和排名的具体使用
2019/07/31 Python
python实现低通滤波器代码
2020/02/26 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
经典c++面试题四
2015/05/14 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
人力资源管理专业求职信
2014/07/23 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
工程承包协议书
2014/10/20 职场文书
总经理岗位职责
2015/02/04 职场文书
Shell脚本一键安装Nginx服务自定义Nginx版本
2022/03/20 Servers