列表生成式 生成器 迭代器
列表生成式 什么是列表生成式,我们先举个栗子: a = [1,2,3,4,5] 上面的语句创建一个列表,列表也可以通过下面的方法创建 a = [i*2 for i in range(10)] print(a) [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 第二种方法比第一种方法更加灵活。第二种方法就叫做列表生成式。 但是不管用哪种方法,列表中的元素都都是在列表创建的同时就被放在列表中了,如果有一个100万个数据的列表,就算我们只用第一个数据,后面的所有数据也会占用空间,造成空间浪费。有没有什么方法避免这种情况发生呢,答案是肯定的。方法就是生成器。 生成器就是把列表生成式的[ ]换成( ) a = (i*2 for i in range(10)) print(a) <generator object <genexpr> at 0x0000018B2FC65BC8> 现在a 就是一个生成器 我们现在要获取a中的数据 a = (i*2 for i in range(10)) print(a[0]) File "D:/7_Python/S14/Day4/生成器.py", line 3, in <module> print(a[0]) TypeError: 'generator' object is not subscriptable 我勒个去,报错了,没法获得数据