三元运算,列表解析,生成器表达式

生成器: 可以理解为一种数据类型,这种数据类型自动实现了迭代器协议(其他的数据类型调用了自己内置的_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__()) #输出结果:鸡蛋0
print(laomuji.__next__()) #输出结果:鸡蛋1
print(laomuji.__next__()) #输出结果:鸡蛋2
print(next(laomuji)) #输出结果:鸡蛋3

print(sum(i for i in range(100000000)))
posted @ 2018-04-07 14:30  阜阳小全  阅读(129)  评论(0编辑  收藏  举报