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中for循环的使用
Apr 14 Python
独特的python循环语句
Nov 20 Python
Python实现求两个csv文件交集的方法
Sep 06 Python
PyCharm 常用快捷键和设置方法
Dec 20 Python
pandas.DataFrame 根据条件新建列并赋值的方法
Apr 08 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
python实现共轭梯度法
Jul 03 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python搭建HTTP服务过程图解
Dec 14 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
python导入库的具体方法
Jun 18 Python
python 模拟登陆github的示例
Dec 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
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
2009/03/13 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php中的静态变量的基本用法
2014/03/20 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
JavaScript中使用replace结合正则实现replaceAll的效果
2010/06/04 Javascript
Javascript 多浏览器兼容总结(实战经验)
2013/10/30 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
js+html5绘制图片到canvas的方法
2015/06/05 Javascript
在JavaScript中操作时间之getMonth()方法的使用
2015/06/10 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
2016/12/16 Javascript
微信小程序 常用工具类详解及实例
2017/02/15 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
[05:31]DOTA2英雄梦之声_第08期_莉娜
2014/06/23 DOTA
Python在线运行代码助手
2016/07/15 Python
mac系统安装Python3初体验
2018/01/02 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
2019/05/07 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Python利用WMI实现ping命令的例子
2019/08/14 Python
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
SIXPAD智能健身仪英国官网:革命性的训练装备品牌
2018/09/27 全球购物
建筑工程技术应届生自荐信
2013/09/27 职场文书
汽车运用工程毕业生自荐信
2013/10/29 职场文书
40岁生日感言
2014/02/15 职场文书
车间质检员岗位职责
2015/04/08 职场文书
整改通知书
2015/04/20 职场文书
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
2022/01/18 HTML / CSS
教你在 Java 中实现 Dijkstra 最短路算法的方法
2022/04/08 Java/Android
python中validators库的使用方法详解
2022/09/23 Python