一文读懂python生成器和列表的区别

本文详细介绍了Python中生成器和列表的区别,包括生成方式、主要区别和使用场景。生成器通过`yield`保留状态,不占用大量内存,适合处理大文件和优化内存。而列表则是一次性生成所有元素,占用更多内存。在迭代时,两者都能用for循环,但生成器不会引发`StopIteration`异常。
摘要由CSDN通过智能技术生成

本文将从三个方面来介绍python当中生成器和列表的区别。主要包括生成方式,主要区别及使用场景三个方面。

一、生成方式

列表 ->[i for i in range(10)]

生成器 -> (i for i in range(10))

我们分别打印出来两个不同的变量看看差异。

可以看到,使用  (i for i in range(10))生成了一个生成器。

二、主要区别

  1. 普通函数及生成器函数        
    1. 普通函数
      def common():
          print("common function")
          return 1
    2. 生成器函数
      def my_gen():
          for i in range(10):
              yield i
      上图可看到python当中普通函数以及生成器函数的书写方式。普通函数在return时会直接返回退出,其后面的操作也不会被执行,不管后面有多少个return都会在第一个return的时候进行返回。而生成器函数最重要的特点是它在遇到yield时不会立即终止,而是暂停在yield的位置,等待下一次调用
  2. 迭代

生成器函数可以使用next()来进行迭代,在迭代终

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值