Python 中enumerate的使用

在索引迭代序列中我们可以通过range()和len()函数遍历序列中的元素以及元素的下标:

>>> a = ['Mary','had','a','littel','lamb']
>>> for i in range(len(a)):
        print(i,a[i])


0 Mary
1 had
2 a
3 littel
4 lamb

然而大部分情况下我们可以使用enumerate函数进行相同的操作:
enumerate函数用于遍历序列中的元素以及它们的下标:

>>> for i,j in enumerate(('a','b','c')):#遍历tuple,注意:两层括号
        print(i,j)


0 a
1 b
2 c
>>> for i,j in enumerate([1,2,3]):#遍历list
        print(i,j)


0 1
1 2
2 3
>>> for i ,j in enumerate({'a':1,'b':2,'c':3}):#遍历dic
        print(i,j)


0 a
1 b
2 c
>>> for i,j in enumerate('abc'):#遍历字符串
        print(i,j)


0 a
1 b
2 c

同时,enumerate 本身是一个生成器函数,可以如下方式使用:

#本身是生成器
In [19]: enumerate('abcdef', 1)
Out[19]: <enumerate at 0xa027360>

#生成带有索引的元组的列表(一组记录)
In [20]: list(enumerate('abcdef', 1))
Out[20]: [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e'), (6, 'f')]

#指定起始索引
In [21]: list(enumerate('abcdef', 10))
Out[21]: [(10, 'a'), (11, 'b'), (12, 'c'), (13, 'd'), (14, 'e'), (15, 'f')]


#与itertools联用,有特效
In [22]: from itertools import chain

In [23]: list(chain(enumerate('abcdef', 10)))
Out[23]: [(10, 'a'), (11, 'b'), (12, 'c'), (13, 'd'), (14, 'e'), (15, 'f')]

#将索引与记录合并
In [24]: list(chain.from_iterable(enumerate('abcdef', 10)))
Out[24]: [10, 'a', 11, 'b', 12, 'c', 13, 'd', 14, 'e', 15, 'f']
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值