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统计日志ip访问数的方法
Jul 06 Python
Python实现针对中文排序的方法
May 09 Python
python爬虫框架talonspider简单介绍
Jun 09 Python
Python实现简单文本字符串处理的方法
Jan 22 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
Python OpenCV读取png图像转成jpg图像存储的方法
Oct 28 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 Python
实例详解Python模块decimal
Jun 26 Python
Python netmiko模块的使用
Feb 14 Python
python能在浏览器能运行吗
Jun 17 Python
Python自带的IDE在哪里
Jul 01 Python
Python爬取豆瓣数据实现过程解析
Oct 27 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发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
PHP实现的构造sql语句类实例
2016/02/03 PHP
php实现学生管理系统
2020/03/21 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
禁止JQuery中的load方法装载IE缓存中文件的方法
2009/09/11 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
JS文件上传神器bootstrap fileinput详解
2021/01/28 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
2018/07/06 Javascript
JS手写一个自定义Promise操作示例
2020/03/16 Javascript
jquery实现广告上下滚动效果
2021/03/04 jQuery
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
Python中集合类型(set)学习小结
2015/01/28 Python
极简的Python入门指引
2015/04/01 Python
详解Python中的正则表达式的用法
2015/04/09 Python
python下读取公私钥做加解密实例详解
2017/03/29 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
python 基本数据类型占用内存空间大小的实例
2018/06/12 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
python/Matplotlib绘制复变函数图像教程
2019/11/21 Python
python 实现生成均匀分布的点
2019/12/05 Python
Python实现读取并写入Excel文件过程解析
2020/05/27 Python
Python内置函数及功能简介汇总
2020/10/13 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
CSS3中的元素过渡属性transition示例详解
2016/11/30 HTML / CSS
Champion官网:美国冠军运动服装
2017/01/25 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
最新奶茶店创业计划书范文
2014/02/08 职场文书
车辆工程专业求职信
2014/04/28 职场文书
先进工作者事迹材料
2014/12/23 职场文书
MySQL数据库安装方法与图形化管理工具介绍
2022/05/30 MySQL