列表生成式
a = [x for x in range(10)]
print(a)
x 可进行操作
a = [x*2 for x in range(10)]
print(a)
x甚至可以为函数,
def f(n):
return n*n*n
a = [f(x) for x in range(10)]
########################
赋值方法
t = (‘123‘,8)a,b = tprint(a)print(b)#############a =(x for x in range(10))#
print(a)#generator object
这个时候打印出来的结果是一个生成器对象,并没有生成序列且将里面的元素并全部存进内存(列表生成器时生成的列表,列表里的元素已经全部存进内存了)类比于之前是厨师做了N道菜出来(列表),菜(元素)全部吃进了肚子(内存),这里只是生成了一个厨师(生成器),想吃什么菜(元素)就调用厨师进行生成。 print(next(a)) 这样就可答应序列的第一个值了,next(a)等价于 a.__next__()生成器里能迭代多少次,就能取多少次值,只能按顺序一个一个区,不能隔取,反顺序取,取完不能再进行曲了,会返回迭代错误的报错。生成器就是一个可迭代对象Iterable object
原文地址:https://www.cnblogs.com/kevingm/p/10090955.html
时间: 2024-10-07 08:34:10