首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python中期学者必看之生成器表达式和enumerate

Python中期学者必看之生成器表达式和enumerate

前言:当输入的数据量大于某些数值之后,列表的内存占用大小变得不可忽视,解决方法就是利用生成器表达式描述列表,避免内存占用过高,类似于最简单的for表达式 .

当输入数据较少时候,必须要用到列表推导,但是如果内存消耗较大,容易导致程序崩溃.通过无休止的循环字符进行操作,久而久之,列表推导也会出现问题,python为此提供了生成器表达式,在每一次运行中生成一项数据.

上例中演示了如何读取一份文件并且返回每行字符数,采用生成器表达式,由于是每一次临时生成,所以不用担心内存迅速增加占用的问题 .

生成器表达式也同样能一起使用,甚至嵌套使用:

上述的语法是没有错误的 .

使用enumerate代替range :

核心要点:

(1)enumerate函数提供了一种精简的写法,可以在遍历迭代器时获知每个元素的索引。

(2)尽量用enumerate来改写那种将range与下标访问相结合的序列遍历代码。

(3)可以给enumerate提供第二参数,以指定开始计数时所用的值(默认为0)

range在使用中大部分用于创建一系列整数的迭代:

我们访问其中元素必须获得其长度以及下标,似乎不便于理解 .

python提供了内建函数:enumerate函数解决这个难题 .

enumerate可使用各个迭代器作为生成器,产出相关值 .

编于2018.2.21

欢迎大家交流,一起进步 !

每天不断的干货 , 助你成长 .

编辑于 20:54

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180221G0OB9G00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券