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发布模块的步骤分享
Feb 21 Python
python使用ctypes模块调用windowsapi获取系统版本示例
Apr 17 Python
举例区分Python中的浅复制与深复制
Jul 02 Python
Selenium的使用详解
Oct 19 Python
WxPython建立批量录入框窗口
Feb 27 Python
pyqt5使用按钮进行界面的跳转方法
Jun 19 Python
django数据库自动重连的方法实例
Jul 21 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
Python如何使用27行代码绘制星星图
Jul 20 Python
python 爬取小说并下载的示例
Dec 07 Python
python drf各类组件的用法和作用
Jan 12 Python
python3实现常见的排序算法(示例代码)
Jul 04 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
discuz Passport 通行证 整合笔记
2008/06/30 PHP
PHP通过正则表达式下载图片到本地的实现代码
2011/09/19 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP5函数小全(分享)
2013/06/06 PHP
浅析php学习的路线图
2013/07/10 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
jQuery实现模拟marquee标签效果
2015/07/14 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
js 动态给元素添加、移除事件的实现方法
2016/07/19 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
JS判断数组是否包含某元素实现方法汇总
2020/06/24 Javascript
Python 详解基本语法_函数_返回值
2017/01/22 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python3 实现调用串口功能
2019/12/26 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
环境科学专业研究生求职信
2013/10/02 职场文书
物理系毕业生自荐信
2013/11/01 职场文书
家庭教育先进个人事迹材料
2014/01/24 职场文书
优秀经理事迹材料
2014/02/01 职场文书
会计与审计专业自荐信范文
2014/03/15 职场文书
学校安全防火方案
2014/06/07 职场文书
担保书格式
2015/01/20 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
Python中使用subprocess库创建附加进程
2021/05/11 Python