python enumerate函数的使用方法总结


Posted in Python onNovember 15, 2017

enumerate函数用于遍历序列中的元素以及它们的下标。

enumerate函数说明:

enumerate()是python的内置函数

enumerate在字典上是枚举、列举的意思

函数原型:enumerate(sequence, [start=0])

功能:将可循环序列sequence以start开始分别列出序列数据和数据下标

即对一个可遍历的数据对象(如列表、元组或字符串),enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标。

举例说明:

存在一个sequence,对其使用enumerate将会得到如下结果:

start    sequence[0]
start+1  sequence[1]
start+2  sequence[2]......

适用版本:

  1. Python2.3+
  2. Python2.x

注意:在python2.6以后新增了start参数

英文解释:

Return an enumerate object. sequence must be a sequence, an iterator, or some other object which supports iteration. The next() method of the iterator returned by enumerate() returns a tuple containing a count (from start which defaults to 0) and the values obtained from iterating over sequence。

代码实例:

enumerate参数为可遍历的变量,如 字符串,列表等; 返回值为enumerate类。

import string
s = string.ascii_lowercase
e = enumerate(s)
print s
print list(e)

输出为:

abcdefghij
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e'), (5, 'f'), (6, 'g'), (7, 'h'), (8, 'i'), (9, 'j')]

在同时需要index和value值的时候可以使用 enumerate。

该实例中,line 是个 string 包含 0 和 1,要把1都找出来:

def xread_line(line):
 return((idx,int(val)) for idx, val in enumerate(line) if val != '0')
 
print read_line('0001110101')
print list(xread_line('0001110101'))

如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):
  print i ,list1[i]

上述方法有些累赘,利用enumerate()会更加直接和优美:

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):
  print index, item
>>>
0 这
1 是
2 一个
3 测试

enumerate还可以接收第二个参数,用于指定索引起始值,如:

list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):
  print index, item
>>>
1 这
2 是
3 一个
4 测试

补充

如果要统计文件的行数,可以这样写:

count = len(open(filepath, 'r').readlines())

这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

可以利用enumerate():

count = 0
for index, line in enumerate(open(filepath,'r')): 
  count += 1

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python显示生日是星期几的方法
May 27 Python
python保存字符串到文件的方法
Jul 01 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
Jul 01 Python
基于Python 的进程管理工具supervisor使用指南
Sep 18 Python
解决Python的str强转int时遇到的问题
Apr 09 Python
Django unittest 设置跳过某些case的方法
Dec 26 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
python flask解析json数据不完整的解决方法
May 26 Python
python程序 创建多线程过程详解
Sep 23 Python
python字符串替换re.sub()实例解析
Feb 09 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
Python set常用操作函数集锦
Nov 15 #Python
python机器学习库常用汇总
Nov 15 #Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
Nov 15 #Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 #Python
Python数据结构之顺序表的实现代码示例
Nov 15 #Python
Django中ORM表的创建和增删改查方法示例
Nov 15 #Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 #Python
You might like
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
javascript调试过程中找不到哪里出错的可能原因
2013/12/16 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
layui-table获得当前行的上/下一行数据的例子
2019/09/24 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
Vue中keep-alive的两种应用方式
2020/07/15 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
学习python处理python编码问题
2011/03/13 Python
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
python轻松实现代码编码格式转换
2015/03/26 Python
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
python实现电子书翻页小程序
2019/07/23 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
Django实现分页显示效果
2019/10/31 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
很酷的HTML5电子书翻页动画特效
2016/02/25 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
大学生表扬信范文
2014/01/09 职场文书
银行开业庆典方案
2014/02/06 职场文书
建筑横幅标语
2014/10/09 职场文书
五好家庭事迹材料
2014/12/20 职场文书
西岭雪山导游词
2015/02/06 职场文书
经营目标责任书
2015/05/08 职场文书
教师师德工作总结2015
2015/07/22 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis