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实现报表自动化详解
Nov 16 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python安装教程
Feb 28 Python
python 统计列表中不同元素的数量方法
Jun 29 Python
PyTorch的深度学习入门之PyTorch安装和配置
Jun 27 Python
Python学习笔记之文件的读写操作实例分析
Aug 07 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
Django调用支付宝接口代码实例详解
Apr 04 Python
tensorflow从ckpt和从.pb文件读取变量的值方式
May 26 Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
Oct 30 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错误Cannot use object of type stdClass as array in错误的解决办法
2014/06/12 PHP
Yii中CGridView实现批量删除的方法
2015/12/28 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
微信小程序 调用微信授权窗口相关问题解决
2019/07/25 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
2015/06/24 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
pycharm安装图文教程
2017/05/02 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Sanic框架路由用法实例分析
2018/07/16 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
2019/05/23 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
2020/03/16 Python
keras多显卡训练方式
2020/06/10 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
英国女士家居服网站:hush
2017/08/09 全球购物
Java servlet面试题
2012/03/04 面试题
春节晚会主持词
2014/03/24 职场文书
校长寄语大全
2014/04/09 职场文书
史学专业毕业生求职信
2014/05/09 职场文书
作风年建设汇报材料
2014/08/14 职场文书
感谢信格式范文
2015/01/22 职场文书
2019学子的答谢词范本!
2019/07/05 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang
Java 数组内置函数toArray详解
2021/06/28 Java/Android
nginx配置指令之server_name的具体使用
2022/08/14 Servers