python enumerate函数的使用方法总结

 更新时间:2017年11月15日 17:10:39   投稿:zx  
这篇文章主要介绍了python enumerate使用方法总结,enumerate函数用于遍历序列中的元素以及它们的下标,有兴趣的可以了解一下

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 读取视频,处理后,实时计算帧数fps的方法

    python 读取视频,处理后,实时计算帧数fps的方法

    今天小编就为大家分享一篇python 读取视频,处理后,实时计算帧数fps的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • python删除指定列或多列单个或多个内容实例

    python删除指定列或多列单个或多个内容实例

    这篇文章主要介绍了python删除指定列或多列单个或多个内容实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python在日志中隐藏明文密码的方法

    Python在日志中隐藏明文密码的方法

    logging日志模块是python的一个内置模块,该模块定义了一些函数和类,为上层应用程序或库实现了一个强大而又灵活的日志记录系统,这篇文章主要介绍了Python如何在日志中隐藏明文密码 ,需要的朋友可以参考下
    2023-10-10
  • python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结

    这篇文章主要介绍了python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • np.concatenate()函数的具体使用

    np.concatenate()函数的具体使用

    本文主要介绍了np.concatenate()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python读文件的步骤

    python读文件的步骤

    在本篇文章里小编给大家分享的是关于python读文件的步骤以及相关知识点,需要的朋友们参考下。
    2019-10-10
  • ubuntu安装mysql pycharm sublime

    ubuntu安装mysql pycharm sublime

    本文给大家汇总介绍了在Ubuntu中如何安装mysql+pycharm+sublime的方法,有相同需求的小伙伴可以参考下
    2018-02-02
  • 代码实例讲解python3的编码问题

    代码实例讲解python3的编码问题

    在本篇内容里小编给各位分享了关于python3的编码问题以及相关实例代码,有需要的朋友们参考一下。
    2019-07-07
  • 浅谈flask源码之请求过程

    浅谈flask源码之请求过程

    这篇文章主要介绍了浅谈flask源码之请求过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Python实现钉钉/企业微信自动打卡的示例代码

    Python实现钉钉/企业微信自动打卡的示例代码

    这篇文章主要介绍了Python实现钉钉/企业微信自动打卡的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02

最新评论