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之集合的关系
Sep 24 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
python中time库的实例使用方法
Oct 31 Python
python获取array中指定元素的示例
Nov 26 Python
Python3 把一个列表按指定数目分成多个列表的方式
Dec 25 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
使用python无账号无限制获取企查查信息的实例代码
Apr 17 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中for循环语句的几种变型
2007/03/16 PHP
PHP curl 并发最佳实践代码分享
2012/09/05 PHP
解析左右值无限分类的实现算法
2013/06/20 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
php实现简易计算器
2020/08/28 PHP
javascript学习笔记(三)显示当时时间的代码
2011/04/08 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
基于vue的下拉刷新指令和滚动刷新指令
2016/12/23 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
Vue之Watcher源码解析(1)
2017/07/19 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
一份超级详细的Vue-cli3.0使用教程【推荐】
2018/11/15 Javascript
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
Python并发爬虫常用实现方法解析
2020/11/19 Python
Parts Express:音频、视频和扬声器的第一来源
2017/04/25 全球购物
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
英国在线滑雪板和冲浪商店:The Board Basement
2020/01/11 全球购物
初中学生评语大全
2014/04/24 职场文书
竞选班委演讲稿
2014/04/28 职场文书
党员民主评议总结
2014/10/20 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
党员干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
2016年圣诞节活动总结范文
2016/04/01 职场文书
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python