1,列表推导式

值 for 循环

2,生成器表达式

g=(i fori inrange(10))

print(g)

for i in g:

print(i)

3,列表推导式与生成器表达式的区别

#括号不一样

#返回值不一样 ===》生成器表达式几乎不占内存

g =('鸡蛋%s'%i for i in range(10))

print(g)

for i in g:

  print(i)

4,各种推导式

1)列表推导式:

[每一个元素或者是和元素相关的操作 for 元素 in 可迭代数据类型] #遍历之后挨个处理

names = [[,,,,,,,,,,,,<span style="color: #0000ff">print([name <span style="color: #0000ff">for lst <span style="color: #0000ff">in names <span style="color: #0000ff">for name <span style="color: #0000ff">in lst <span style="color: #0000ff">if name.count(<span style="color: #800000">'<span style="color: #800000">e<span style="color: #800000">') >= 2]) <span style="color: #008000">#<span style="color: #008000"> 注意遍历顺序,这是实现的关键

2)列表推导式(筛选功能):

[满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件] #筛选功能

3)生成器推导式:

(满足条件的元素相关的操作 for 元素 in 可迭代数据类型 if 元素相关的条件)

4)字典推导式:

例一:将一个字典的key和value对调

mcase = {: 10,: 34= {mcase[k]: k k (mcase_frequency)

例二:合并大小写对应的value值,将k统一成小写

mcase = {: 10,: 34,: 7,: 3= {k.lower(): mcase.get(k.lower(),0) + mcase.get(k.upper(),0) k (mcase_frequency)

5)集合推导式:

squared = {x**2 x [1,-1,2

5,移动平均值

= 0.0=== +=+= 1= total/g_avg =<span style="color: #000000"> averager()
next(g_avg)
<span style="color: #0000ff">print(g_avg.send(10<span style="color: #000000">))
<span style="color: #0000ff">print(g_avg.send(30<span style="color: #000000">))
<span style="color: #0000ff">print(g_avg.send(5))

6,预激生成器的装饰器

init(func):
inner(*args,**= func(*args,**@init
<span style="color: #0000ff">def<span style="color: #000000"> averager():
total = 0.0<span style="color: #000000">
count =<span style="color: #000000"> 0
average =<span style="color: #000000"> None
<span style="color: #0000ff">while<span style="color: #000000"> True:
term = <span style="color: #0000ff">yield<span style="color: #000000"> average
total +=<span style="color: #000000"> term
count += 1<span style="color: #000000">
average = total/<span style="color: #000000">count

g_avg =<span style="color: #000000"> averager()
<span style="color: #008000">#<span style="color: #008000"> next(g_avg) 在装饰器中执行了next方法
<span style="color: #0000ff">print(g_avg.send(10<span style="color: #000000">))
<span style="color: #0000ff">print(g_avg.send(30<span style="color: #000000">))
<span style="color: #0000ff">print(g_avg.send(5))

dawei

【声明】:淮南站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。