Skip to content

Latest commit

 

History

History
85 lines (57 loc) · 1.18 KB

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

File metadata and controls

85 lines (57 loc) · 1.18 KB
title categories
Python每日一谈|No.13.列表生成式.2
Python每日一谈

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

你可以很简单的通过

a = [i for i in b]

来搭建一个列表

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

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

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

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

我们看个例子

In [3]: a = [i for i in range(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 in range(0,1000))

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

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

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

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

In [20]: b = (i for i in range(0,10))

In [21]: for i in b:
    ...:     print(i)
    ...:
0
1
2
3
4
5
6
7
8
9

好,水文结束,大家早午晚安