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中SOAP项目的介绍及其在web开发中的应用
Apr 14 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
Python Grid使用和布局详解
Jun 30 Python
python时间日期操作方法实例小结
Feb 06 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
python 串行执行和并行执行实例
Apr 30 Python
使用Keras加载含有自定义层或函数的模型操作
Jun 10 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
python基础之文件处理知识总结
May 23 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
理解PHP5中static和const关键字的区别
2007/03/19 PHP
php设计模式 Command(命令模式)
2011/06/26 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
10个基于Jquery的幻灯片插件教程
2010/10/29 Javascript
javascript设计模式 接口介绍
2012/07/24 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
2015/02/28 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
2015/08/21 Javascript
JS小数运算出现多为小数问题的解决方法
2016/06/02 Javascript
Javascript实现图片加载从模糊到清晰显示的方法
2016/06/21 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
js实现微博发布小功能
2017/01/12 Javascript
详解ES6之async+await 同步/异步方案
2017/09/19 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
详解Angular模板引用变量及其作用域
2018/11/23 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
js验证账户名是否重复
2020/05/26 Javascript
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
浅谈python中的实例方法、类方法和静态方法
2017/02/17 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
jupyter notebook中新建cell的方法与快捷键操作
2020/04/22 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
2021/02/25 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
纽约著名的服装辅料来源:M&J Trimming
2017/07/26 全球购物
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
python DataFrame中stack()方法、unstack()方法和pivot()方法浅析
2022/04/06 Python