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 12 Python
Python之用户输入的实例
Jun 22 Python
Opencv实现抠图背景图替换功能
May 21 Python
对Python3之方法的覆盖与super函数详解
Jun 26 Python
Django 过滤器汇总及自定义过滤器使用详解
Jul 19 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
Python 用turtle实现用正方形画圆的例子
Nov 21 Python
Python 中如何实现参数化测试的方法示例
Dec 10 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
Dec 22 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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函数之日期时间函数date()使用详解
2013/09/09 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
远离JS灾难css灾难之 js私有函数和css选择器作为容器
2011/12/11 Javascript
一样的table?不一样的table(可编辑状态table)
2012/09/19 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
JavaScript手机振动API
2016/06/11 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
JS实现简单的二元方程计算器功能示例
2017/01/03 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
react中fetch之cors跨域请求的实现方法
2018/03/14 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
layui使用templet格式化表格数据的方法
2019/09/16 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
详解Python中的join()函数的用法
2015/04/07 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python实现QQ空间自动点赞功能
2019/04/09 Python
Python定时任务APScheduler安装及使用解析
2020/08/07 Python
python编写实现抽奖器
2020/09/10 Python
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
NBA欧洲商店(法国):NBA Europe Store FR
2016/10/19 全球购物
床上用品全球在线购物:BeddingInn
2016/12/18 全球购物
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
小学科学课教学反思
2016/02/23 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python
Python基础之变量的相关知识总结
2021/06/23 Python
Python 中的Sympy详细使用
2021/08/07 Python
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server