#!/usr/bin/env python # -*- coding: utf-8 -*- #生成器中的元素只能从头到尾取一次,生成器不调用不执行 g1 = filter(lambda n:n%2==0,range(10)) g2 = map(lambda n:n*2,range(3)) print(list(g1),g1) #[0, 2, 4, 6, 8] print(list(g2),g2) #[0, 2, 4] for i in g1: for j in g2: print(i,j) print(i*j) # 000 def multip(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multip()]) """ 拆分 1: """ def multip(): fun_list=[] for i in range(4): fun = lambda x:i*x fun_list.append(fun) return fun_list print([m(2) for m in multip()]) """ 拆分 2: """ def multip(): fun_list=[] i = 0 fun = lambda x:i*x fun_list.append(fun) i = 1 fun = lambda x:i*x fun_list.append(fun) i = 2 fun = lambda x:i*x fun_list.append(fun) i = 3 fun = lambda x:i*x fun_list.append(fun) #此时i已经等于3了,fun_list=[lambda x:i*x,lambda x:i*x,lambda x:i*x,lambda x:i*x] #特别注意 lambda一直没有调用。 return fun_list print([m(2) for m in multip()]) # [6, 6, 6, 6] """ 要得到[0,2,4,6],方式1: """ def multip(): for i in range(4): yield lambda x:i*x print([m(2) for m in multip()]) #[0, 2, 4, 6] """ 要得到[0,2,4,6],方式2: """ def multip(): return (lambda x:i*x for i in range(4)) print([m(2) for m in multip()])
#!/usr/bin/env python # -*- coding: utf-8 -*- lst = ['周','周星星','麻花藤','周扒皮'] for i in range(len(lst)-1,-1,-1): print(i,range(len(lst)-1,-1,-1)) if lst[i][0] =='周': lst.pop(i) print(lst) lst = ['周','周星星','麻花藤','周扒皮'] lst1=[] for i in lst: if i.startswith('周'): lst1.append(i) for j in lst1: lst.remove(j) print(lst)
#! /user/bin/env python # -*- coding: utf-8 -*- def fib(max): n,a,b = 0,0,1 while n < max: yield b a,b = b,a+b n += 1 return 'haha' print(fib(6).__next__(),id(fib(6).__next__())) #操作fib(6)这个生成器 print(fib(6).__next__(),id(fib(6).__next__())) #操作又一个fib(6)这个生成器 print(fib(6).__next__(),id(fib(6).__next__())) #操作又一个新生成的fib(6)这个生成器 #函数名()的到的结果就是生成器,上面始终在操作新的生成器 pro=fib(6) #生成一个生成器 print(pro.__next__(),id(pro.__next__())) #操作这个已经生成的生成器pro print(pro.__next__(),id(pro.__next__())) #操作这个已经生成的生成器pro print(pro.__next__(),id(pro.__next__())) #操作这个已经生成的生成器pro #函数名()的到的结果就是生成器,上面操作的一直是Pro这一个生成器 #你从__next__()的id就能看出,fib(6)是新生成的生成器。