【Python】详解 enumerate + zip 函数

目录

一、枚举函数 —— enumerate

二、拉链函数 —— zip

三、小结


一、枚举函数 —— enumerate

enumerate(iterable, start=0)

枚举函数返回一个枚举对象 —— 迭代器 iterator。每次迭代,内部将调用 __next__ 方法并返回一个 tuple,内含一个计数值 (默认从 start=0 开始计数) 和一个获取自可迭代对象 iterable 的值。例如:

>>> x = ['a', 'b', 'c', 'd', 'e']
>>> for i in enumerate(x):
	print(i)
	
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
# ----------------------------------------------------------------------------
>>> list(enumerate(x))  # 迭代器 iterator 是惰性的, 常用显示类型转换令其强制运算
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd'), (4, 'e')]

但通常会用两个局部变量来对每次迭代的 tuple 解包,以便于接收迭代内容的同时,获取额外的计数值 (常用作索引) 而无需自定义计数器

>>> index = -1  # 初始化计数器 (全局变量)
>>> for element in x:  # 使用自定义计数器
	index += 1
	print(index, element)

0 a
1 b
2 c
3 d
4 e
# --------------------------------------------------------------------
>>> for (index, element) in enumerate(x):  # 使用 enumerate 关键字

0 a
1 b
2 c
3 d
4 e
# --------------------------------------------------------------------
>>> for index, element in enumerate(x):  # 对于非嵌套的可迭代对象, 两种用法等价
	print(index, element)

0 a
1 b
2 c
3 d
4 e

事实上,全局变量的查询和访问速度低于局部变量,应尽量减少全局变量的使用,尤其是在循环中,而使用 enumerate 关键字就是一个不错的替代方案。

此外,enumerate 的参数 start 作

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值