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 学习笔记
Dec 27 Python
netbeans7安装python插件的方法图解
Dec 24 Python
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
Python实现截屏的函数
Jul 25 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
Python大批量搜索引擎图像爬虫工具详解
Nov 16 Python
Django前后端分离csrf token获取方式
Dec 25 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+mysql一个名片库程序
2006/10/09 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
ThinkPHP V2.2说明文档没有说明的那些事实例小结
2015/07/01 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
使用javascript创建快捷方式的简单实例
2013/08/09 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
2016/08/11 Javascript
微信小程序 开发之全局配置
2017/05/05 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
利用React Router4实现的服务端直出渲染(SSR)
2019/01/07 Javascript
jQuery动态生成的元素绑定事件操作实例分析
2019/05/04 jQuery
JS实现从对象获取对象中单个键值的方法示例
2019/06/05 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
纯JS实现五子棋游戏
2020/05/28 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
详解JavaScript中的链式调用
2020/11/27 Javascript
Python实现Linux中的du命令
2017/06/12 Python
使用Python来开发微信功能
2018/06/13 Python
在双python下设置python3为默认的方法
2018/10/31 Python
Pytorch 实现冻结指定卷积层的参数
2020/01/06 Python
分享29个基于Bootstrap的HTML5响应式网页设计模板
2015/11/19 HTML / CSS
大四学生思想汇报
2014/01/13 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
Spring Boot实现文件上传下载
2022/08/14 Java/Android