首先,思考一个问题,比如,我们想生成0—100的列表,我们怎么做?
当然,可以写成
list1=[1,2,3...,100]
可以看出,这种方法不适合生成长的列表,那么Python中就可以利用已有的列表,生成新的列表,叫做列表生成式,下面就很简洁了
list2=[x for x in range(1,101)]
list1和list2是一样的,只是list2更简单
比列表生成式更进一步的是,是列表生成器generator
g=(x*2 for x in range(1,101))
g是一个生成器,在需要的时候会根据某种算法计算出来,而不用存储在内存中,节约了空间,需要使用的时候就可以像普通列表一样
next方法:返回迭代器的下一个元素
__iter__方法:返回迭代器对象本身