如何使用python中iter函数?

iter()将可迭代对象转换为迭代器,通过next()获取元素直至StopIteration;2. 可用于列表、元组等,for循环自动调用iter()和next();3. 提供sentinel时,iter持续调用可调用对象直至返回值等于sentinel;4. 自定义类可通过实现__iter__和__next__方法支持迭代。

如何使用python中iter函数?

在 Python 中,iter() 函数用于将可迭代对象转换为迭代器。有了迭代器,你可以通过 next() 函数逐个获取元素,直到所有元素被访问完毕,之后会抛出 StopIteration 异常。

基本语法

iter(object) 或 iter(object, sentinel)

object:支持迭代的容器或序列,比如列表、元组、字符串、字典等。sentinel:可选参数。当提供该参数时,iter 会持续调用 object(必须是可调用对象),直到返回值等于 sentinel,此时停止。

从列表创建迭代器

这是最常见的使用方式:

my_list = [10, 20, 30]
it = iter(my_list)
print(next(it)) # 输出: 10
print(next(it)) # 输出: 20
print(next(it)) # 输出: 30
print(next(it)) # 抛出 StopIteration

配合 for 循环使用

for 循环内部其实自动调用了 iter() 和 next(),所以可以直接使用:

立即学习“Python免费学习笔记(深入)”;

my_tuple = (5, 10, 15)
for value in iter(my_tuple):
    print(value)

这段代码和直接写 for value in my_tuple: 效果一样。

使用 sentinel 控制迭代结束

当你有一个可调用对象(如函数),可以使用第二个参数来控制何时停止:

import random

def get_random():
    return random.randint(1, 10)

# 当 get_random() 返回 5 时,迭代停止
it = iter(get_random, 5)
for value in it:
    print(value)

这会不断调用 get_random() 并输出结果,直到返回 5 为止。

自定义类中使用 iter

你可以在类中定义 __iter__() 方法,使其支持 iter():

class CountDown:
    def __init__(self, start):
        self.start = start

    def __iter__(self):
        return self

    def __next__(self):
        if self.start             raise StopIteration
        self.start -= 1
        return self.start + 1

# 使用示例
cd = CountDown(3)
for i in cd:
    print(i) # 输出 3, 2, 1

基本上就这些。掌握 iter() 能帮助你更深入理解 Python 的迭代机制,尤其是在处理大数据流或需要惰性计算时特别有用。不复杂但容易忽略细节。

以上就是如何使用python中iter函数?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1382285.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月14日 23:46:08
下一篇 2025年12月14日 23:46:27

相关推荐

发表回复

登录后才能评论
关注微信