Python中的enumerate函数介绍

enumerate英文翻译为枚举的意思。 可以将一个可遍历的数据对象组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。Python 2.3. 以上版本可用,2.6 添加 start 参数。

  • 语法

>>> help(enumerate)
Help on class enumerate in module __builtin__:

class enumerate(object)
 |  enumerate(iterable[, start]) -> iterator for index, value of iterable
 |
 |  Return an enumerate object.  iterable must be another object that supports
 |  iteration.  The enumerate object yields pairs containing a count (from
 |  start, which defaults to zero) and a value yielded by the iterable argument.
 |  enumerate is useful for obtaining an indexed list:
 |      (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
  • 参数

  1. sequence       # 一个序列、迭代器或其他支持迭代对象。
  2. start                # 下标起始位置、默认为0
  • 返回值

返回枚举类型

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))                # 默认start为0          
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1))       # start为1
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
>>> s = "ABCD"
>>> list(enumerate(s))                      # 字符串类型
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> l = ["A", "B", "C", "D"]
>>> list(enumerate(l))                      # 列表类型
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> t = ("A", "B", "C", "D")              
>>> list(enumerate(t))                      # 元祖类型                
[(0, 'A'), (1, 'B'), (2, 'C'), (3, 'D')]
>>> d = {"A": 1, "B": 2}
>>> list(enumerate(d))                      # 字典类型,枚举其key
[(0, 'A'), (1, 'B')]
>>>
  • 通过for循环遍历示例

>>> # 通过元素来遍历
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> count = 0
>>> for season in seasons:
...     print count,"=>", season
...     count += 1
...
0 => Spring
1 => Summer
2 => Fall
3 => Winter
>>> # 通过索引来遍历
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> for i in range(len(seasons)):
...     print i, "=>", seasons[i]
...
0 => Spring
1 => Summer
2 => Fall
3 => Winter
>>>
  • 通过enumerate来遍历示例

>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> for (index, season) in enumerate(seasons):
...     print index,"=>",season
...
0 => Spring
1 => Summer
2 => Fall
3 => Winter
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> for (index, season) in enumerate(seasons, start=1):
...     print index,"=>",season
...
1 => Spring
2 => Summer
3 => Fall
4 => Winter
>>>
  • 其它示例:统计文本的行数

通常的做法

>>> count = len(open(r"D:\\1.txt").readlines())
>>> count
7

 使用enumerate

>>> for index,line in enumerate(open(r"D:\\1.txt"), start=1):
...     pass
...
>>> index
7

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值