枚举函数(eumererate)

python-enumerate枚举函数

enumerate 函数用于遍历序列中的元素以及它们的下标:

>>> for i,j in enumerate(('a','b','c')):
 print i,j

0 a
1 b
2 c


>>> for i,j in enumerate([1,2,3]):
 print i,j

0 1
1 2
2 3


>>> for i,j in enumerate({'a':1,'b':2}):
 print i,j

0 a
1 b

>>> for i,j in enumerate('abc'):
 print i,j

0 a
1 b
2 c

Python中常见的序列主要有列表(list)、元组(tuple)和字符串(string)。关对于序列的遍历,Python推荐的是for…in…sequence语句做成员测试,这个语句其实和for…in…range()一样是按照索引顺序遍历的,但是用in语句的话不能直接使用索引值。

在实际应用中,遍历经常也要用到索引值,比如计数,统计进度等等。用range的话怎么看着都麻烦,其实可以使用enumerate()函数。

enumerate的意思是列举、枚举。

enumerate()函数时Python的内置函数。

原理分析

基本用法

s = [2,5,8,3,6,9]
for i in enumerate(s):
    print i
  • 1
  • 2
  • 3

结果为:

(0, 2)
(1, 5)
(2, 8)
(3, 3)
(4, 6)
(5, 9)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

按照一般的序列迭代方法,可以看出enumerate()函数的返回值是一个元组,元组构成为(index, value),也就是序列索引和值的元组。

第二可选参数,解决索引从0开始输出的问题

enumerate()有两个参数序列和起始索引。 
即enumerate(sequence , index)

s = [2,5,8,3,6,9]
for i in enumerate(s, 1):
    print i
  • 1
  • 2
  • 3

结果为:

(1, 2)
(2, 5)
(3, 8)
(4, 3)
(5, 6)
(6, 9)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

这样就解决了索引从0开始,而我们习惯从1开始输出的问题。

示例

下面以常见的序列,列表、元组、字符串为例简单说明enumerate()的使用方法。

示例1 列表

s = [2,5,8,3,6,9]
for index, value in enumerate(s):
    print index, value
  • 1
  • 2
  • 3

结果为:

0 2
1 5
2 8
3 3
4 6
5 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例2 元组

s = (2,5,8,3,6,9)
for index, value in enumerate(s):
    print index, value
  • 1
  • 2
  • 3

结果为:

0 2
1 5
2 8
3 3
4 6
5 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

示例3 字符串

s = 'test'
for index, value in enumerate(s):
    print index, value
  • 1
  • 2
  • 3

结果为:

0 t
1 e
2 s
3 t
原文地址:https://www.cnblogs.com/yueyuanyi/p/9375556.html