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 相关文章推荐
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
Python第三方库的安装方法总结
Jun 06 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
python操作excel的包(openpyxl、xlsxwriter)
Jun 11 Python
Python将list中的string批量转化成int/float的方法
Jun 26 Python
对python中不同模块(函数、类、变量)的调用详解
Jul 16 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
简述python四种分词工具,盘点哪个更好用?
Apr 13 Python
解决Pytorch dataloader时报错每个tensor维度不一样的问题
May 28 Python
python3中apply函数和lambda函数的使用详解
Feb 28 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跳转页面的几种实现方法详解
2013/06/08 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
WordPress免插件实现面包屑导航的示例代码
2020/08/20 PHP
表单内同名元素的控制
2006/11/22 Javascript
测试你的JS的掌握程度的代码
2009/12/09 Javascript
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
简介JavaScript中POSITIVE_INFINITY值的使用
2015/06/05 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
微信小程序上传图片到php服务器的方法
2019/05/23 Javascript
Vue使用NProgress进度条的方法
2019/09/21 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
2020/03/25 Javascript
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
Python实用技巧之利用元组代替字典并为元组元素命名
2018/07/11 Python
pygame实现贪吃蛇游戏(下)
2019/10/29 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
Python创建自己的加密货币的示例
2021/03/01 Python
非常震撼的纯CSS3人物行走动画
2016/02/24 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
2014/05/08 HTML / CSS
JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么?
2015/10/22 面试题
销售行业个人求职自荐信
2013/09/25 职场文书
高校教师岗位职责
2014/03/18 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
电影地道战观后感
2015/06/04 职场文书
教师见习总结范文
2015/06/23 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
python基于opencv批量生成验证码的示例
2021/04/28 Python
Python几种酷炫的进度条的方式
2022/04/11 Python