Python实现迭代时使用索引的方法示例


Posted in Python onJune 05, 2018

本文实例讲述了Python实现迭代时使用索引的方法。分享给大家供大家参考,具体如下:

索引迭代

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,再迭代,就同时获得了索引和元素本身。

同时,也可以采用zip的方法给迭代对象加上索引

zip()函数可以把两个 list 变成一个 list:

>>> zip([10, 20, 30], ['A', 'B', 'C'])
[(10, 'A'), (20, 'B'), (30, 'C')]

在迭代 ['Adam', 'Lisa', 'Bart', 'Paul'] 时,如果我们想打印出名次 - 名字(名次从1开始),请考虑如何在迭代中打印出来。

提示:考虑使用zip()函数和range()函数

代码如下:

L = ['Adam', 'Lisa', 'Bart', 'Paul']
for index, name in zip(range(1, 5), L):
  print index, '-', name

输出结果为:

1 - Adam
2 - Lisa
3 - Bart
4 - Paul

索引成功加上

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
通过代码实例展示Python中列表生成式的用法
Mar 31 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
Python中的if、else、elif语句用法简明讲解
Mar 11 Python
Python 类的继承实例详解
Mar 25 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
python3.4下django集成使用xadmin后台的方法
Aug 15 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
python实现将汉字保存成文本的方法
Nov 16 Python
python截取两个单词之间的内容方法
Dec 25 Python
对Python多线程读写文件加锁的实例详解
Jan 14 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
Numpy 将二维图像矩阵转换为一维向量的方法
Jun 05 #Python
django反向解析和正向解析的方式
Jun 05 #Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 #Python
Python实现字典(dict)的迭代操作示例
Jun 05 #Python
python矩阵转换为一维数组的实例
Jun 05 #Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 #Python
django反向解析URL和URL命名空间的方法
Jun 05 #Python
You might like
php关键字仅替换一次的实现函数
2015/10/29 PHP
PHP递归创建多级目录
2015/11/05 PHP
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
JS获取网页属性包括宽、高等等
2014/04/03 Javascript
jQuery学习笔记之jQuery中的$
2015/01/19 Javascript
javascript实现数独解法
2015/03/14 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
angular6 利用 ngContentOutlet 实现组件位置交换(重排)
2018/11/02 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
python实现unicode转中文及转换默认编码的方法
2017/04/29 Python
快速了解Python中的装饰器
2018/01/11 Python
Python button选取本地图片并显示的实例
2019/06/13 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python实发邮件实例详解
2019/11/11 Python
python cookie反爬处理的实现
2020/11/01 Python
python源文件的字符编码知识点详解
2021/03/04 Python
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
澳大利亚领先的在线葡萄酒零售商:Get Wines Direct
2018/03/27 全球购物
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
英国DIY汽车维修配件网站:DIY Car Service Parts
2019/08/30 全球购物
政法大学毕业生自荐信范文
2014/01/01 职场文书
偷看我的初中毕业鉴定
2014/01/29 职场文书
制作部班长职位说明书
2014/02/26 职场文书
党日活动总结
2014/05/07 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
市场营销毕业求职信
2014/08/07 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
个性与发展自我评价
2015/03/06 职场文书
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python