pyhton 三元、生成器的使用

# 三元、迭代

list1= [1,2,3,4]
# list 列表
a=[i for i in list1]
# generator 生成器(简单点理解生成器就是一个迭代器)
'''
生成器的好处:
1.占用内存小,不会像list等需要加载所有元素到内存在转为迭代器
2.效率高,不需要转换为迭代器
'''
# 三元+生成器
b=(i for i in list1 if i>2)
for i in b:
print(i)
# 迭代器
c=list1.__iter__()
print(type(a))
print(type(b))
print(type(c))

# 生成器的使用
def gen1():
yield 1
yield 2
yield 3
gen = gen1()
print(next(gen))
print(next(gen))
print(next(gen))

def gen2(name):
while True:
# res接受gen.send(obj)传的值(注意:name和传的形参无必然关系)
res = yield "name:%s" %name
name = res
gen = gen2("lds")
print(gen.send(None))
print(gen.send("123"))
print(gen.send("1234"))

猜你喜欢

转载自www.cnblogs.com/lides/p/11080070.html