1、 生成式
li = [x*x for x in xrange(1,10) if x%2 == 0]
print(li)
结果:
[4, 16, 36, 64]
def funa():
a = []
for x in xrange(1,10):
if x%2 == 0:
a.append(x*x)
return a
print(funa())
结果:
[4, 16, 36, 64]
2、 生成器
#列表生成器
#1. 最简单的方法,把原来的生成式的[]换成()就OK了
lt = (x * x for x in xrange(1,101) if x % 2 == 0)
print(lt)
print(type(lt))
print(lt.next())
print(lt.next())
print(lt.next())
print(lt.next())
结果:
at 0x03161A80>
4
16
36
64
生成器可以用for循环调用
# for i in lt:
# print(i)
#2. 函数中定义列表生成器
def fib(n):
sum = 0
i = 0
while(i
sum = sum + i
i+=