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中优化NumPy包使用性能的教程
Apr 23 Python
Python中字符串对齐方法介绍
May 21 Python
Python程序员面试题 你必须提前准备!
Jan 16 Python
Python实现替换文件中指定内容的方法
Mar 19 Python
python实现批量解析邮件并下载附件
Jun 19 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
python3的url编码和解码,自定义gbk、utf-8的例子
Aug 22 Python
详解如何用python实现一个简单下载器的服务端和客户端
Oct 28 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
Sep 03 Python
基于python定位棋子位置及识别棋子颜色
Jul 26 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
不用数据库的多用户文件自由上传投票系统(1)
2006/10/09 PHP
php.ini 中文版
2006/10/28 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
PHP读取数据库并按照中文名称进行排序实现代码
2013/01/29 PHP
PHP 异步执行方法,模拟多线程的应用分析
2013/06/03 PHP
ThinkPHP之N方法实例详解
2014/06/20 PHP
Yii分页用法实例详解
2014/12/04 PHP
Zend Framework路由器用法实例详解
2016/12/11 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
jquery下checked取值问题的解决方法
2012/08/09 Javascript
裁剪字符串trim()自定义改进版
2013/04/10 Javascript
JQuery获取或设置ckeditor的数据(示例代码)
2013/11/15 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
jQuery仿360导航页图标拖动排序效果代码分享
2015/08/24 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
JavaScript实现隐藏省略文字效果的方法
2017/04/27 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
JS FormData对象使用方法实例详解
2020/02/12 Javascript
python实现web方式logview的方法
2015/08/10 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
python 实现多维数组转向量
2019/11/30 Python
中英文求职信范文
2014/01/27 职场文书
企业形象策划方案
2014/05/29 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
贷款收入证明格式
2015/06/24 职场文书