前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python每日一谈|No.13.列表生成式.2

Python每日一谈|No.13.列表生成式.2

作者头像
DrugScience
发布2021-03-16 08:54:25
1980
发布2021-03-16 08:54:25
举报
文章被收录于专栏:DrugScience

上篇我们说到了列表生成式

你可以很简单的通过

代码语言:javascript
复制
a = [i for i in b]

来搭建一个列表

但是,问题还在于内存,是不是有种熟悉的味道

是的,你可以在生成列表之后使用迭代器来减少内存

其实方法很简单,我是为了水文才拆成了两篇,怕你们记不住

我们只需要将[]修改为()便可以直接生成一个迭代器

我们看个例子

代码语言:javascript
复制
In [3]: a = [i for i inrange(0,1000)]

In [4]: type(a)
Out[4]: list

In [5]: import sys

In [6]: sys.getsizeof(a)
Out[6]: 9032

In [9]: b = (i for i inrange(0,1000))

In [10]: sys.getsizeof(b)
Out[10]: 128

我们生成迭代器之后的使用方法和原来的一样

代码语言:javascript
复制
In [12]: next(b)
Out[12]: 0

In [13]: next(b)
Out[13]: 1

In [14]: next(b)
Out[14]: 2

In [15]: next(b)
Out[15]: 3

In [16]: next(b)
Out[16]: 4

In [17]: next(b)
Out[17]: 5

当然,你也可以通过循环来进行调用

代码语言:javascript
复制
In [20]: b = (i for i inrange(0,10))

In [21]: for i in b:
    ...:     print(i)
    ...:
0
1
2
3
4
5
6
7
8
9
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FindKey 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档