学到了林海峰,武沛齐讲的Day18 迭代

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>     功能同上,不占内存

 

今天太困了...睡觉,明天起早干活

 

上一篇:day18


下一篇:noi2018还没想好记