参数说明:
-
iterable – 可迭代对象
-
default – 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
-
list、tuple等都是可迭代对象,我们可以通过
iter()函数
获取这些可迭代对象的迭代器。然后,我们可以对获取到的迭代器
不断使⽤
next()函数
来获取下⼀条数据
。
iter()函数实际上就是调⽤了可迭代对象的
iter
⽅法。
代码范例01:
it = iter([1,2,3,4,5])
while True:
try:
x = next(it)
print(x)
except StopIteration:
break
代码范例02:
li = [11, 22, 33, 44, 55]
li_iter = iter(li)
next(li_iter)
next(li_iter)
next(li_iter)
next(li_iter)
next(li_iter)
next(li_iter)
---------------------------------------------------------------------------
StopIteration Traceback (most recent call last)
<ipython-input-15-9584f6653730> in <module>
----> 1 next(li_iter)
StopIteration:
注意,当我们已经迭代完最后⼀个数据之后,再次调⽤next()函数
会抛出 StopIteration的异常 ,来告诉我们所有数据都已迭代完成,不⽤再执⾏ next()函数
了。
参考链接:
Python next() 函数
通常,for 循环会在背后隐式地使用 iter() 函数来获取迭代器,并通过 next() 函数逐个访问元素,直到抛出 StopIteration 异常表示迭代结束。在 Python 中,iter() 是一个内置函数,用于获取一个可迭代对象的迭代器。迭代器是一种对象,它可以逐个访问可迭代对象的元素,而不需要提前知道可迭代对象的全部内容。迭代器是一种可以逐个访问元素的对象。在上述例子中,iter(my_list) 返回了列表 my_list 的迭代器,并通过 next() 函数逐个访问了列表的元素。
经常在自己建立好数据集后需要验证一下,自己的图片和标签能不能对上,经常用到next(iter(dataloader))命令。可知其返的是一个batch的图片和标签数据,数据类型均为tensor,图片维度为(c,h,w)。分别打印出返回值的大小、类别。
iterator -- 可迭代对象
default -- 可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
e.g.:
1 #!/usr/bin/py...