Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-iter.html

python 用来生成迭代器的内置函数 iter 详解

Python 内置函数 Python 内置函数


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 参数,还可以在特定条件下终止迭代。

10中引入了一个新的内置函数aiter(),它用于获取可迭代对象的异步迭代器对象。run(main())运行结果:012使用sentinel ...
reversed()是一个内置函数,用于创建一个反转的迭代器,该迭代器会返回序列(如列表、元组、字符串等)中的元素,但是按照相反的顺序返回。 ...
next()是Python内置的函数,用于从迭代器(iterator)中获取下一个元素。close()总结next()函数用于从迭代器中逐个 ...
Python中有个特殊的模块builtins,该模块无需导入便可使用,其中包含了许多内置函数和类。chr()用于将给定的ASCII码值转换为 ...
list()是Python中的一个内置函数,用于将可迭代对象(如列表、元组、字符串等)转换为一个新的列表对象。函数语法list(iterab ...