iter()
是 Python 内置的一个函数,用于生成迭代器。迭代器是一种对象,可以逐个地遍历一个可迭代对象(例如列表、元组、字典等),并在每次遍历中提供一个元素,直到没有更多元素可供遍历为止。这种惰性地提供元素的方式可以帮助节省内存和提高性能。
函数语法
iter(iterable, sentinel)
参数:
iterable
(可迭代对象):要生成迭代器的可迭代对象,比如列表、字符串、字典等。sentinel
(可选):当iterable
是一个可调用的对象时,用于指定结束迭代的标志。如果不提供sentinel
,则iterable
必须是一个可迭代对象,迭代器将在遍历完所有元素后引发StopIteration
异常。
示例代码
使用 iter() 遍历列表:
my_list = [1, 2, 3, 4, 5]
my_iter = iter(my_list)
for item in my_iter:
print(item)
运行结果:
1
2
3
4
5
使用 iter() 遍历字符串:
my_string = "Hello"
my_iter = iter(my_string)
for char in my_iter:
print(char)
运行结果:
H
e
l
l
o
使用 iter() 结合 sentinel 遍历可调用对象:
import random
def random_generator(stop_value):
while True:
value = random.randint(1, 10)
yield value
if value == stop_value:
break
rand_gen = random_generator(5)
my_iter = iter(rand_gen, 5)
for num in my_iter:
print(num)
运行结果(因为遇到了 sentinel
值 5,迭代在这里终止):
6
2
9
5
总结
iter()
是一个非常有用的内置函数,用于生成迭代器对象,从而实现惰性地遍历可迭代对象的元素。它可以用于各种可迭代对象,包括列表、字符串、字典等。在需要逐个处理元素而不想一次性加载所有元素到内存中的情况下,iter()
函数尤其有用。此外,通过结合 sentinel
参数,还可以在特定条件下终止迭代。