Python enumerate()函数

原文: https://thepythonguru.com/python-builtin-functions/enumerate/


于 2020 年 1 月 7 日更新


enumerate()函数采用一个可迭代对象,并返回一个枚举对象(一个迭代器),该对象生成一个格式为(index, item)的元组,其中index指该项目的偏移量,item指的是可迭代对象中的对应的项目。

enumerate()函数的语法如下:

语法

  1. enumerate(iterable[, start=0]) -> iterator for index, value of iterable
参数 描述
iterable (必需)任何可迭代的对象,例如字符串,列表,字典等。
start(可选) index的初始值。 默认为0

这是一个例子:

  1. >>>
  2. >>> list(enumerate("hello"))
  3. [(0, 'h'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]
  4. >>>
  5. >>>
  6. >>> for index, value in enumerate("hello"):
  7. ... print(index, value)
  8. ...
  9. 0 h
  10. 1 e
  11. 2 l
  12. 3 l
  13. 4 o
  14. >>>

试试看:

  1. print( list(enumerate("hello")) )
  2. for index, value in enumerate("hello"):
  3. print(index, value)

以下清单显示enumerate()如何与清单,字典和元组一起使用:

  1. >>>
  2. >>> for index, value in enumerate([110, 45, 12, 891, "one"]):
  3. ... print(index, value)
  4. ...
  5. 0 110
  6. 1 45
  7. 2 12
  8. 3 891
  9. 4 one
  10. >>>
  11. >>>
  12. >>> for index, value in enumerate({'name': 'Jane', 'age': 26, 'salary': 40000}):
  13. ... print(index, value)
  14. ...
  15. 0 name
  16. 1 salary
  17. 2 age
  18. >>>
  19. >>>
  20. >>> for index, value in enumerate({1, 290, -88, 10}):
  21. ... print(index, value)
  22. ...
  23. 0 -88
  24. 1 1
  25. 2 10
  26. 3 290
  27. >>>

试一试:

  1. for index, value in enumerate([110, 45, 12, 891, "one"]):
  2. print(index, value)
  3. print("-"*20)
  4. for index, value in enumerate({'name': 'Jane', 'age': 26, 'salary': 40000}):
  5. print(index, value)
  6. print("-"*20)
  7. for index, value in enumerate({1, 290, -88, 10}):
  8. print(index, value)

设置索引的初始值


要设置索引的初始值,我们使用start关键字参数。

  1. >>>
  2. >>> list(enumerate("hello", start=2))
  3. [(2, 'h'), (3, 'e'), (4, 'l'), (5, 'l'), (6, 'o')]
  4. >>>
  5. >>>
  6. >>> for index, value in enumerate("hello", start=2):
  7. ... print(index, value)
  8. ...
  9. 2 h
  10. 3 e
  11. 4 l
  12. 5 l
  13. 6 o
  14. >>>

试一试:

  1. print( list(enumerate("hello", start=2)) )
  2. for index, value in enumerate("hello", start=2):
  3. print(index, value)