Python内置函数iter()详解

Python的iter()函数是一个用于获取对象的迭代器的内置函数。这个函数对于实现迭代协议的对象非常有用,允许我们对集合进行迭代。

函数定义

iter()函数的基本语法如下:

iter(object[, sentinel])
  • object:支持迭代的集合对象。
  • sentinel:如果提供了第二个参数,那么object必须是一个可调用的对象(如函数),此时迭代会在返回值等于sentinel的时候终止。

如果不提供sentinel参数,object必须是一个支持迭代协议的对象(即,有__iter__()方法或者序列类型的__getitem__()方法),函数返回一个迭代器对象。

基本用法

获取列表迭代器

my_list = [1, 2, 3]
my_iter = iter(my_list)

print(next(my_iter))  # 输出: 1
print(next(my_iter))  # 输出: 2

使用sentinel参数

def countdown(n):
    print('Starting countdown from', n)
    while n > 0:
        yield n
        n -= 1

# 创建一个以0为终止符的迭代器
iter_countdown = iter(countdown(5).__next__, 0)

for number in iter_countdown:
    print(number)

高级用法

自定义迭代器

class Counter:
    def __init__(self, low, high):
        self.current = low
        self.high = high

    def __iter__(self):
        return self

    def __next__(self):
        if self.current > self.high:
            raise StopIteration
        else:
            self.current += 1
            return self.current - 1

for c in Counter(3, 8):
    print(c)

与生成器一起使用

def my_generator():
    for i in range(5):
        yield i

gen = my_generator()
for value in gen:
    print(value)

注意事项

  • 使用iter()时,如果对象不支持迭代协议,将抛出TypeError
  • 迭代器是一次性的,一旦耗尽,再次调用next()将抛出StopIteration异常。

结论

iter()是Python中一个非常有用的内置函数,它提供了一种标准的方法来迭代各种类型的集合对象。通过上述例程,我们可以看到iter()在实际编程中的应用,以及如何有效地使用它来简化代码和增强其可读性。

  • 34
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值