📅  最后修改于: 2023-12-03 14:46:41.887000             🧑  作者: Mango
在Python中,迭代器(iterator)是许多对象的内置功能,包括列表(list)、集合(set)和元组(tuple)等。迭代器是一种访问集合元素的方式,可以遍历整个集合。迭代器不仅能够遍历Python内置数据类型,还能遍历我们自定义的数据类型,如类(class)等。
Python中内置的迭代器函数有很多,下面介绍部分:
iter()
**函数作用:**返回一个迭代器对象
函数语法:
iter(iterable)
代码示例:
lst = [1, 2, 3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2
print(next(it)) # 3
iter()
函数接收一个可迭代对象作为参数(如列表、元组、字符串等),返回一个迭代器对象。通过next()
函数调用迭代器,可依次遍历可迭代对象的每一个元素。
next()
**函数作用:**返回迭代器的下一个元素
函数语法:
next(iterator[, default])
代码示例:
lst = [1, 2, 3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2
print(next(it)) # 3
print(next(it, 'End of iteration')) # End of iteration
next()
函数接收一个迭代器作为参数,返回迭代器的下一个元素。当迭代器遍历结束时,如果传入了default
参数,则返回default
值;否则抛出StopIteration
异常。
enumerate()
**函数作用:**返回可迭代对象的元素和索引
函数语法:
enumerate(iterable[, start])
代码示例:
lst = ['apple', 'banana', 'orange']
for idx, val in enumerate(lst):
print(f'{idx}: {val}')
enumerate()
函数将一个可迭代对象作为参数,返回一个元素为元组的迭代器,其中每个元组包含原迭代器的下标和对应的元素值。可选的start
参数表示下标的起始值,默认为0。
zip()
**函数作用:**将多个可迭代对象中相同位置的元素打包为元组
函数语法:
zip(*iterables)
代码示例:
lst1 = [1, 2, 3]
lst2 = ['red', 'green', 'blue']
zip_lst = zip(lst1, lst2)
for tup in zip_lst:
print(tup)
zip()
函数接收多个可迭代对象作为参数,返回一个可迭代的迭代器,每个元素是一个元组,包含所有可迭代对象中相同位置的元素。当其中任意一个可迭代对象遍历结束时,zip()
函数也会停止迭代。如果参数可迭代对象不等长,则以最短的对象为基准。