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装饰器 免去调用父类构造函数的麻烦
May 18 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
python查看zip包中文件及大小的方法
Jul 09 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
Apr 08 Python
在Python dataframe中出生日期转化为年龄的实现方法
Oct 20 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
django 框架实现的用户注册、登录、退出功能示例
Nov 28 Python
pytorch::Dataloader中的迭代器和生成器应用详解
Jan 03 Python
python-xpath获取html文档的部分内容
Mar 06 Python
在TensorFlow中实现矩阵维度扩展
May 22 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 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(6) 面向对象
2010/02/16 PHP
10款实用的PHP开源工具
2015/10/23 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
PHP单态模式简单用法示例
2016/11/16 PHP
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
深入理解JavaScript高级之词法作用域和作用域链
2013/12/10 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
利用bootstrapValidator验证UEditor
2016/09/14 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
通过button将form表单的数据提交到action层的实例
2017/09/08 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
jQuery实现日历效果
2020/09/11 jQuery
Python字典实现简单的三级菜单(实例讲解)
2017/07/31 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
Python解决八皇后问题示例
2018/04/22 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
tensorflow实现加载mnist数据集
2018/09/08 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
pytorch forward两个参数实例
2020/01/17 Python
python使用PIL剪切和拼接图片
2020/03/23 Python
python 生成器需注意的小问题
2020/09/29 Python
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
十佳青年个人事迹材料
2014/01/28 职场文书
中学教师教育感言
2014/02/21 职场文书
音乐教育感言
2014/03/05 职场文书
大学生英语演讲稿
2014/04/24 职场文书
政府门卫岗位职责
2014/04/29 职场文书
2014年体育工作总结
2014/11/24 职场文书
小学教师党员承诺书
2015/04/27 职场文书
在职证明格式样本
2015/06/15 职场文书
培根随笔读书笔记
2015/07/01 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python