生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型调用了自己内置的_iter_()方法),所以生成器就是可迭代对象
# 三元表达式name = ‘alex‘name = ‘liuhaiquan‘res = ‘SB‘if name == ‘alex‘ else ‘shuai‘print(res) #列表解析eggs_li = []for i in range(10): eggs_li.append(‘鸡蛋%s‘ %i)print(eggs_li)#结果:[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘] #等同于l = [‘鸡蛋%s‘ % i for i in range(10)]l2 = [‘鸡蛋%s‘ % i for i in range(10) if i > 5]print(l)#结果:[‘鸡蛋0‘, ‘鸡蛋1‘, ‘鸡蛋2‘, ‘鸡蛋3‘, ‘鸡蛋4‘, ‘鸡蛋5‘, ‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘]print(l2)#结果:[‘鸡蛋6‘, ‘鸡蛋7‘, ‘鸡蛋8‘, ‘鸡蛋9‘] laomuji = (‘鸡蛋%s‘ %i for i in range(10))print(laomuji) #老母鸡就是生成器print(laomuji.__next__()) #输出结果:鸡蛋0print(laomuji.__next__()) #输出结果:鸡蛋1print(laomuji.__next__()) #输出结果:鸡蛋2print(next(laomuji)) #输出结果:鸡蛋3 print(sum(i for i in range(100000000)))
原文地址:https://www.cnblogs.com/lhqlhq/p/8733223.html
时间: 2024-10-20 05:02:37