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中的zipfile模块使用详解
Jun 25 Python
Python复制文件操作实例详解
Nov 10 Python
利用Python中unittest实现简单的单元测试实例详解
Jan 09 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 Python
Python 编码规范(Google Python Style Guide)
May 05 Python
Python实现的txt文件去重功能示例
Jul 07 Python
python实现维吉尼亚算法
Mar 20 Python
python opencv捕获摄像头并显示内容的实现
Jul 11 Python
python opencv实现证件照换底功能
Aug 19 Python
Python计算公交发车时间的完整代码
Feb 12 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
Dec 03 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 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
PHP原生函数一定好吗?
2014/12/08 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
PHP命名空间定义与用法实例分析
2019/08/14 PHP
javascript innerText和innerHtml应用
2010/01/28 Javascript
javascript中的array数组使用技巧
2010/01/31 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
CountUp.js实现数字滚动增值效果
2019/10/17 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
微信小程序实现上传多张图片、删除图片
2020/07/29 Javascript
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
简单介绍Python2.x版本中的cmp()方法的使用
2015/05/20 Python
Python使用defaultdict读取文件各列的方法
2017/05/11 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python OpenCV获取视频的方法
2018/02/28 Python
Django如何配置mysql数据库
2018/05/04 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python封装成可带参数的EXE安装包实例
2019/08/24 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
python中列表的含义及用法
2020/05/26 Python
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
如何选择使用结构还是类
2014/05/30 面试题
员工试用期自我鉴定范文
2014/09/15 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
Python中for后接else的语法使用
2021/05/18 Python
spring项目中切面及AOP的使用方法
2021/06/26 Java/Android