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实现对PPT文件进行截图操作的方法
Apr 28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
Nov 29 Python
Python实现KNN邻近算法
Jan 28 Python
python字符串与url编码的转换实例
May 10 Python
详解python pandas 分组统计的方法
Jul 30 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python 实现任务管理清单案例
Apr 25 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
python基于tkinter制作无损音乐下载工具
Mar 29 Python
k-means & DBSCAN 总结
Apr 27 Python
Python pygame实现中国象棋单机版源码
Jun 20 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/08/28 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
php实现socket推送技术的示例
2017/12/20 PHP
javascript 处理HTML元素必须避免使用的一种方法
2009/07/30 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
通过JS来判断页面控件是否获取焦点
2014/01/03 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
JS中Location使用详解
2015/05/12 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
jQuery实现彩带延伸效果的网页加载条loading动画
2015/10/29 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
JS对象与JSON互转换、New Function()、 forEach()、DOM事件流等js开发基础小结
2017/08/10 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
在Django框架中伪造捕捉到的URLconf值的方法
2015/07/18 Python
python各种语言间时间的转化实现代码
2016/03/23 Python
django2 快速安装指南分享
2018/01/05 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
简单了解python单例模式的几种写法
2019/07/01 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
党风廉政承诺书
2014/03/27 职场文书
2014年项目工作总结
2014/11/24 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
给客户的检讨书
2014/12/21 职场文书
预备党员入党感想
2015/08/10 职场文书
小学班主任教育随笔
2015/08/15 职场文书
终止合同协议书范本
2016/03/22 职场文书
Django中session进行权限管理的使用
2021/07/09 Python
Apache Linkis 中间件架构及快速安装步骤
2022/03/16 Servers