python中对象的特征_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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值