python3补充篇(迭代器与生成器)

迭代器

迭代是Python最强大的功能之一,是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()

字符串,列表或元组对象都可用于创建迭代器:

 

list=[1,2,3,4]
it = iter(list)    # 创建迭代器对象
print (next(it))   # 输出迭代器的下一个元素
print (next(it))   # 输出迭代器的下一个元素(会记住原来的位置,在原来的位置继续下去)

print("*"*10)
list = [1, 2, 3, 4]
it = iter(list)  # 创建迭代器对象
for x in it:
    print(x, end=" ")

结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,生成器(Generator)是一种特殊的生成器可以通过函数来创建,并使用yield语句来产生值。生成器可以按需生成值,而不是一次性生成所有值,这使得它们非常节省内存。 生成器有以下几个共同点: 1. 都可以使用for循环进行代。 2. 都支持使用next()函数获取下一个元素。 3. 都可以使用iter()函数将其转换为对象。 生成器的不同之处在于实现方式: - 是通过实现`__iter__()`和`__next__()`方法来创建的,其中`__iter__()`方法返回对象本身,`__next__()`方法返回可代对象中的下一个元素。 - 生成器是通过函数中的yield语句来定义的。当函数被调用时,它返回一个生成器对象,每次调用生成器的next()方法或使用for循环代时,它会产生一个值并暂停,等待下一次调用。 下面是一个示例,展示了生成器的使用: ```python # 示例 class MyIterator: def __iter__(self): self.counter = 1 return self def __next__(self): if self.counter <= 5: value = self.counter self.counter += 1 return value else: raise StopIteration # 创建对象 my_iter = MyIterator() # 使用for循环代 for num in my_iter: print(num) # 输出: 1, 2, 3, 4, 5 # 生成器示例 def my_generator(): num = 1 while num <= 5: yield num num += 1 # 创建生成器对象 my_gen = my_generator() # 使用for循环代 for num in my_gen: print(num) # 输出: 1, 2, 3, 4, 5 ``` 无论是使用还是生成器,我们都可以通过代来逐个访问元素,但生成器更加简洁和高效,因为它们按需生成值而不是一次性生成所有值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值