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实现的ini文件操作类分享
Nov 20 Python
python 实现删除文件或文件夹实例详解
Dec 04 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
Python批量发送post请求的实现代码
May 05 Python
基于DATAFRAME中元素的读取与修改方法
Jun 08 Python
pthon贪吃蛇游戏详细代码
Jan 27 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
python实现差分隐私Laplace机制详解
Nov 25 Python
Django集成celery发送异步邮件实例
Dec 17 Python
tensorboard实现同时显示训练曲线和测试曲线
Jan 21 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
python代码实现图书管理系统
Nov 30 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下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php获取四位字母和数字的随机数的实现方法
2015/01/09 PHP
php使用MySQL保存session会话的方法
2015/06/26 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
Fastest way to build an HTML string(拼装html字符串的最快方法)
2011/08/20 Javascript
js constructor的实际作用分析
2011/11/15 Javascript
Javascript实现快速排序(Quicksort)的算法详解
2015/09/06 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
jQuery仿移动端支付宝键盘的实现代码
2018/08/15 jQuery
Ant design vue中的联动选择取消操作
2020/10/31 Javascript
[18:16]sakonoko 2017年卡尔集锦
2018/02/06 DOTA
Python 操作MySQL详解及实例
2017/04/30 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
详解Python模块化编程与装饰器
2021/01/16 Python
STAY JAPAN台湾:预订日本民宿
2018/07/22 全球购物
外贸业务员岗位职责
2013/11/24 职场文书
员工薪酬福利制度
2014/01/17 职场文书
四群教育工作实施方案
2014/03/26 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
学子宴致辞大全
2015/07/27 职场文书
2016学习医德医风心得体会
2016/01/25 职场文书
python 模块重载的五种方法
2021/04/24 Python
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript