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中操作字典之fromkeys()方法的使用
May 21 Python
Python的Django框架中从url中捕捉文本的方法
Jul 20 Python
python+selenium识别验证码并登录的示例代码
Dec 21 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
python爬虫增加访问量的方法
Aug 22 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
python操作yaml说明
Apr 08 Python
浅析python 定时拆分备份 nginx 日志的方法
Apr 27 Python
python读取hdfs并返回dataframe教程
Jun 05 Python
Python中相见恨晚的技巧
Apr 13 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 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
星际争霸 Starcraft 发展史
2020/03/14 星际争霸
php缩放gif和png图透明背景变成黑色的解决方法
2014/10/14 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
xml分页+ajax请求数据源+dom取结果实例代码
2008/10/31 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
浅析JavaScript动画
2015/06/10 Javascript
JavaScript encodeURI 和encodeURIComponent
2015/12/04 Javascript
详解js的六大数据类型
2016/12/27 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
Javascript Dom元素获取和添加详解
2019/09/24 Javascript
在vue+element ui框架里实现lodash的debounce防抖
2019/11/13 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
Vue使用CDN引用项目组件,减少项目体积的步骤
2020/10/30 Javascript
python利用hook技术破解https的实例代码
2013/03/25 Python
利用打码兔和超人打码自封装的打码类分享
2014/03/16 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python实现公历(阳历)转农历(阴历)的方法示例
2017/08/22 Python
书单|人生苦短,你还不用python!
2017/12/29 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Python延时操作实现方法示例
2018/08/14 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
人事专员的职责
2014/02/26 职场文书
建筑院校毕业生求职信
2014/06/13 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
抢劫罪辩护词
2015/05/21 职场文书
如何用PHP websocket实现网页实时聊天
2021/05/26 PHP