前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中enumerate对象的用法与特点

Python中enumerate对象的用法与特点

作者头像
Python小屋屋主
发布2018-04-17 10:53:08
1.5K0
发布2018-04-17 10:53:08
举报
文章被收录于专栏:Python小屋Python小屋

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python小屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档