Python的内置函数enumerate()函数用来枚举可迭代对象中的元素,返回可迭代的enumerate对象,其中每个元素都是包含索引和值的元组。

#枚举字符串中的元素

>>> list(enumerate('abcd'))

[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]

#枚举列表中的元素

>>> list(enumerate(['Python', 'Greate']))

[(0, 'Python'), (1, 'Greate')]

>>> d = {'a':97, 'b':98, 'c':99}

#枚举字典中的元素

>>> list(enumerate(d.items()))

[(0, ('a', 97)), (1, ('b', 98)), (2, ('c', 99))]

#枚举range对象中的元素

>>> for index, value in enumerate(range(10, 15)):

print((index, value), end=' ')

(0, 10) (1, 11) (2, 12) (3, 13) (4, 14)

#可以指定枚举时索引的起始值,这并不常用

>>> list(enumerate('abcd', 5))

[(5, 'a'), (6, 'b'), (7, 'c'), (8, 'd')]

enumerate对象具有惰性求值特点,就好像一个一端有挡板的管子里有很多外径略小于管子内径的圆球,每次只能打开挡板拿出最前面的圆球,不去拿的时候挡板是关的,不会有圆球出来。并且,已经拿出来的圆球管子里就没有了(可以想象每个圆球都有编号)。

正如上面所说,enumerate对象中已经访问过的元素无法再次访问,在使用时要注意这个问题。另外,zip、filter、map等对象也具有类似的特点。

>>> x = enumerate('abcde')

>>> (0,'a') in x

True

#元素(0,'a')已经访问过了,无法再次访问

>>> (0,'a') in x

False

#不支持使用下标访问其中的元素

>>> x[-1]

Traceback (most recent call last):

File "<pyshell#43>", line 1, in <module>

x[-1]

TypeError: 'enumerate' object is not subscriptable

Python中enumerate对象的用法与特点相关推荐

  1. python enumerate函数_关于python中enumerate和zip函数的用法及举例

    关于python中enumerate和zip函数的用法及举例 关于enumerate函数: enumerate函数可以同时返回列表或元组等可迭代对象的下标和内容,但实际上,enumerate函数实际返 ...

  2. python中enumerate在for循环中用法_python中enumerate的用法实例解析

    在python中enumerate的用法多用于在for循环中得到计数,本文即以实例形式向大家展现python中enumerate的用法.具体如下: enumerate参数为可遍历的变量,如 字符串,列 ...

  3. python中类方法与实例方法的区别-Python中的对象,方法,类,实例,函数用法分析...

    本文实例分析了Python中的对象,方法,类,实例,函数用法.分享给大家供大家参考.具体分析如下: Python是一个完全面向对象的语言.不仅实例是对象,类,函数,方法也都是对象. class Foo ...

  4. python中循环语句的用法,python几种循环方式

    python中while循环的用法是什么? python while循环语句:while 判断条件(condition):执行语句(statements)--执行语句可以是单个语句或语句块. 判断条件 ...

  5. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

  6. python中的lambda函数用法--无需定义函数名的函数或子程序,避免代码充斥着大量单行函数

    匿名函数lambda:是指一类无需定义标识符(函数名)的函数或子程序. lambda 函数可以接收任意多个参数 (包括可选参数) 并且返回单个表达式的值. 要点: lambda 函数不能包含命令 包含 ...

  7. python中pop函数的用法_python中pop()函数怎么用

    python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...

  8. python中heapq的库是什么_详解Python中heapq模块的用法

    详解Python中heapq模块的用法 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  详解Python中heapq模块的用法.txt ] (友情提示:右键点上行t ...

  9. Python中的解包用法

    Python中的解包用法 解包(unpacking:解包,拆包),基本意思将容器里面的元素逐个取出来使用.封包(packing:封包,打包)基本意思将多个元素合起来作为一个整体使用. 可迭代对象支持解 ...

最新文章

  1. 算法 快速求一个整数的7倍
  2. ElasticSearch配置优先使用自带jdk
  3. Linux监控实时log
  4. C# 导出EXCEL文件
  5. 动态修改页面Meta 标签 keywords description
  6. [开源] 基于ABP,Hangfire的开源Sharepoint文件同步解决方案----SuperRocket.SPSync
  7. 超链接js点击后页面向上滚动问题解决
  8. Ext.Ajax.request
  9. 特斯拉:未授权第三方对外开展特斯拉充电站有关投资或集资项目
  10. java年月日时分秒格式_Java 日期时间 LocalDate LocalTime LocalDateTime类
  11. 猜数游戏c语言编程while,【游戏编程】猜数字游戏(C语言)
  12. opencv读取视频,读取摄像头
  13. AI教育甚嚣尘上,“松鼠”、“小猿”们能否重塑教育形态?
  14. 大数据时代,我们需要“被遗忘权”(转)
  15. 金斧子银斧子和铁斧子
  16. 利用计算机测地震是计算机的什么,六年级计算机测试题
  17. 程序员申请加班调休被HR拒绝:996是行规,不想加班就趁早走人!
  18. 微信小程序如何在后端获取openId?
  19. 久等了,改造版阿里 sentinel 控制台终于开源了
  20. python爬虫下载小说_用PYTHON爬虫简单爬取网络小说

热门文章

  1. ipa图片解密 php,ipa文件中的图片获取
  2. for mew歌词 shell_求shell for mew的中文歌词
  3. xp系统怎样启动打印机服务器,WinXP系统如何开启Printspooler服务?
  4. 正态分布表怎么查表_《深入浅出统计学》-读书笔记-再谈正态分布的应用
  5. nginx.conf配置文件简单说明
  6. 500套xmind经典模板_构建可视化思维 一个原创作者三年XMind经验总结
  7. java pattern split,Java中的Pattern splitAsStream()方法及其示例
  8. 基于JAVA+SpringMVC+MYSQL的健身房管理系统
  9. 自考计算机非笔试英语怎么考,自考中的非笔试课程是什么,怎么进行考核?
  10. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)