什么是迭代:
迭代其实就是遍历整个数据结构
nums = [3,4,5]
for n in nums:
print(n)
上述代码中,我们定义了一个nums列表,并且使用for循环对其进行遍历。其实整个过程就是迭代,所谓迭代,就是对数据集中每一个元素对其进行遍历。
带索引的迭代:
使用enumerate获取可迭代对象中的索引以及所对应的值
nums = [3,5,6]
for index,n in enumerate(nums):
print(f"index:{index} value:{n}")
'''代码输出:
index:0 value:3
index:1 value:5
index:2 value:6
'''
上述代码输出,index表示索引,默认索引是从0开始的,那么我们是否可以指定索引开始值呢?
for index,n in enumerate(nums,3):
print(f"index:{index} value:{n}")
'''代码输出:
index:3 value:3
index:4 value:5
index:5 value:6
'''
上述代码中,enumerate可以接受第二个参数,表示索引起始值,必须为int类型。
迭代器:
迭代器是一个用来遍历目标数据的工具,使用iter()函数来得到
nums = [3,5,6]
it = iter(nums)
print(type(it)) # 输出:<class 'list_iterator'> 是一个列表的迭代器
可以用一个形象的比喻:一个列表认为是一个仓库,现在要把仓库中每个东西点一遍,你来找一个人来做,这个人就是迭代器。
print(next(it)) # 输出为:3
print(next(it)) # 输出为:4
print(next(it)) # 输出为:5
print(next(it)) # 输出为:报错 StopIteration
也可以用for循环来遍历,也就是说在in后面,可以放一个列表,也可以放一个迭代器
for i in it:
print(i)
本文参考:
https://www.bilibili.com/video/BV1BG411j7s4/?spm_id_from=333.999.0.0&vd_source=cf0b4c9c919d381324e8f3466e714d7a