python生成器

生成器(generator):

        生成器本质就是迭代器

创建生成器的两种方案:

        1.生成器函数

        2.生成器表达函数

生成器函数

生成器函数有一个关键字yieid      yield只有执行到next的时候才会返回

生成器函数执行的时候,并不会执行函数,得到的是生成器

def func():
    print(111241312)
    yield 999   #yield也有返回的意思

ret =  func()
print(ret.__next__())  #yield只有执行到next的时候才会返回 


//terminal
111241312
999

 yield关键字:只要出现了yield关键字,他就是一个生成器函数

                        作用:①返回数据

                                  ② 可以分段执行函数中的内容

def func():
    print(11111)
    yield 999   #yield也有返回的意思
    print(22222)
    yield 888
    print(3333)
    yield 777

ret =  func()
print(ret.__next__())  #yield只有执行到next的时候才会返回
print(ret.__next__())

//termianl
11111
999
22222
888

推导式 

简化代码

语法:

        列表推导式:[ 数据  for循环  if判断 ]

        集合推导式:{ 数据  for循环  if判断 }

        字典推导式 :{ k:v   for循环  if判断 }

list = []
for i in range(10):
    list.append(i)
print(list)

lis = [i for i in range(10)]  #列表推导式
print(lis)

生成偶数

lis = []
lis = [i for i in range(10) if i % 2 == 0] #生成偶数
print(lis)


//terminal
[0, 2, 4, 6, 8]

小写转大写

lis = ["cba","nba","edg","drx","fpx"]
lis2 = [item.upper() for item in lis if item == "edg"] #生成大写
print(lis2)
//terminal
['EDG']

列表改为字典

lst = ['华为','丁真','战狼','吴京','谷爱凌','冬奥会']
dic = {i:lst[i] for i in range(len(lst))}
print(dic)

//terminal
{0: '华为', 1: '丁真', 2: '战狼', 3: '吴京', 4: '谷爱凌', 5: '冬奥会'}

生成器表达式

生成器表达式

                语法:(数据  for循环  if)

s = "周杰伦"
s2 = list(s)
print(s)
print(s2)

//treminal
周杰伦
['周', '杰', '伦']
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值