python迭代生成器
三元表达式 :是一个迭代生成器
#简单实例 name='孙林林' res='帅哥' if name=='孙林林' else '美女' print(res) #实例2, 给sun传入一亿个数字进行累加,以迭代器方式减少内存占用 print(sum(i for i in range(100000000))) #生成列表 lst=['鸡蛋:%d'%i for i in range(10)] print(lst) #生成迭代对象 laomuji=('鸡蛋:%d'%i for i in range(10) if i<3) print(laomuji) #<generator object <genexpr> at 0x000001837A76BC80> print(laomuji.__next__()) #鸡蛋:0 print(laomuji.__next__()) #鸡蛋:1 print(next(laomuji)) #鸡蛋:2 # print(next(laomuji)) #报错,因为迭代已经结束
yield 也是一个迭代生成器,且其表示返回,但可以多此返回,实际作用是在运行过程中取出想要的值
def func(): yield 1 yield 2 yield 3 f=func() print(f) #<generator object func at 0x000002BEBC8BBC80> print(list(f)) #[1, 2, 3],把迭代生成器传给列表,才能正常显示出来

浙公网安备 33010602011771号