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 相关文章推荐
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
在win和Linux系统中python命令行运行的不同
Jul 03 Python
python机器学习理论与实战(五)支持向量机
Jan 19 Python
Python使用字典的嵌套功能详解
Feb 27 Python
Python实现查找字符串数组最长公共前缀示例
Mar 27 Python
一篇文章搞定Python操作文件与目录
Aug 13 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
Python多线程:主线程等待所有子线程结束代码
Apr 25 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
python爬虫爬取图片的简单代码
Jan 18 Python
python APScheduler执行定时任务介绍
Apr 19 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
在Windows系统下使用PHP生成Word文档的教程
2015/07/03 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
禁止js文件缓存的代码
2010/04/09 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
微信小程序中form 表单提交和取值实例详解
2017/04/20 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
详解React项目如何修改打包地址(编译输出文件地址)
2019/03/21 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
js实现九宫格抽奖
2020/03/19 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
解决VUE mounted 钩子函数执行时 img 未加载导致页面布局的问题
2020/07/27 Javascript
JS实现简易图片自动轮播
2020/10/16 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python常用的json标准库
2019/02/19 Python
python中tkinter的应用:修改字体的实例讲解
2019/07/17 Python
python str字符串转uuid实例
2020/03/03 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
英国知名的护肤彩妆与时尚配饰大型综合零售电商:Unineed
2016/11/21 全球购物
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
体育专业求职信
2014/07/16 职场文书
政风行风评议整改方案
2014/09/15 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js