#1.列表生成式
d = {'x':'A','y':'B','z':'C'}
print([k+'='+v for k ,v in d.items()])
#生成list,[1到10]
print(list(range(1,11)))
#生成[1*1,2*2...]
print([x*x for x in range(1,11)])
#'abc','123' ,输出 a1,a2,a3,b1,b2,b3
print([m+n for m in 'abc' for n in '123'])
print([m + n for m in 'a.b.c' for n in '123' if m!='.'])
生成器
#生成器
g = (x * x for x in range(10))
print(g)
print(next(g))
print(next(g))
print(next(g))
print(next(g))
for n in g:
print(n)
print('='*80)
#yield
#菲波那切数列1,1,2,3,5,8
def fid(max):
n,a,b = 0,0,1
while n<max:
print(b)
a,b = b, a+b
n=n+1
return 'done'
fid(6)
print('='*80)
#输出关键字换成yield变成生成器
def fid(max):
n,a,b = 0,0,1
while n<max:
yield b
a,b = b, a+b
n=n+1
return 'done'
g= fid(6)
print('='*80)
for n in g:
print(n)
print('='*80)
while True:
try:
x= next(g)
print(x)
except StopIteration as e:
print('没有数据了',e.value)
break
列表生成式#1.列表生成式d = {'x':'A','y':'B','z':'C'}print([k+'='+v for k ,v in d.items()])#生成list,[1到10]print(list(range(1,11)))#生成[1*1,2*2...]print([x*x for x in range(1,11)])#'abc','123' ,输出 a1,a2...