打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python中enumerate对象的用法与特点

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 '', line 1, in

    x[-1]

TypeError: 'enumerate' object is not subscriptable


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
python中enumerate什么意思
Python语言编程系列008----enumerate()及zip()函数的使用例子
Python 函数式编程
Python中最常用的15个内置函数
Python内置函数大全
Python迭代和生成操作小结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服