x='hello' gxr=iter(x) gxr=x.__iter__()
print(next(gxr)) print(gxr.__next__())
iter()===__iter__
next()===__next__
感觉就是简化命令而已.,,,将10行的代码,简化后,用2个命令解决,产生了一个新的函数
def l(): yield 1 yield 2 yield 3 g=l() print(g.__next__()) print(g.__next__())
这个有用
name='alex' # name='linhaifeng' res='SB' if name == 'alex' else '帅哥' (res=('SB' (if name == 'alex') else '帅哥'))
print(res)
判断 ,将10行的代码,简化后,用2个命令解决,产生了一个新的函数(方法)
b=(i for i in range(10)) #生成器表达式().处理大数据,不站内存 a=[i for i in range(10)] #列表[] print(a) print(b) # print(next(a)) # print(next(a)) print(next(b)) print(next(b))
打印
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
<generator object <genexpr> at 0x0000019BC0709548>
0
1
另一个,主要解决大批量数据
print(sum(i for i in range(10) if i > 5 )) print(sum([i for i in range(10) if i > 5 ])) print([i for i in range(10) if i > 5 ]) print(i for i in range(10) if i > 5 )
打印
30 sum计算
30 sum计算
[6, 7, 8, 9] 大数据,占内存
<generator object <genexpr> at 0x000002013F3B9F48> 功能同上,不占内存
今天太困了...睡觉,明天起早干活