python8——高级特性(生成式、生成器、迭代器)

一、生成式

  • 许多大神基本一行代码就能解决复杂的算法问题,让人叹为观止,其实这就是生成式。
  • 列表生成式就是一个用来生成列表的特定语法形式的表达式。是Python提供的一种生成列表的简洁形式, 可快速生成一个新的list。

列表生成式
举例:
随机生成100个随机数,并将数据导入列表当中

第二种方式就是用我们的列表生成式直接写出的,简便很多

import string
import random
codes  = []
for i in range(100):
    code = "".join(random.sample(string.ascii_letters,4))
    codes.append(code)
print(codes)
#################
codes2 = ["".join(random.sample(string.ascii_letters,4))for i in range(100)]
print(codes2)

在这里插入图片描述

num = []
for i in range(1,101):
    if i % 3 == 0:
        num.append(i)
print(num)
num2 = [i for i in range(1,101) if i % 3 == 0]
print(num2)

集合生成式

result = {i**2 for i in range(10)}
print(result)

字典生成式

result2 = {i:i**2 for i in range(10)}
print(result2)

二、生成器

在这里插入图片描述
创建生成器
第一种方法: 列表生成式的改写。 []改成()
第二种方法: yield关键字。

def login():
    print('step 1')
    yield 1
    print('step 2')
    yield 2
    print('step 3')
    yield 3
g = login()
print(next(g))
print(next(g))

在这里插入图片描述
生成器的特点是什么?
在这里插入图片描述
python中return关键字和yield关键字的区别?

  • return:在程序函数中返回某个值,返回之后函数不在继续执行,彻底结束。
  • yield: 带有yield的函数是一个迭代器,函数返回某个值时,会停留在某个位置,返回函数值后,会在前面停留的位置继续执行,直到程序结束

三、生成器、迭代器与可迭代对象区别

迭代是访问容器元素的一种方式。迭代器是一个可以记住遍历的位置的对象。
迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
可迭代对象:可以直接作用于for循环的对象(如何判断是否可以迭代?)

  • 一类是集合数据类型,如list, tuple,dict, set,str等;
  • 一类是generator,包括生成器和带yield的generator function。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾几人要努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值