python 列表推导式,生成器,迭代器

Python列表推导与生成器
本文介绍Python中的列表推导式与生成器的基本概念、使用方法及运行规则,并探讨了迭代器的相关特性。
  • 一、列表推导式
    • 1.就是指的轻量级循环创建列表。
    • 2.格式 [变量 for 变量 in 可迭代的 if 判断]
    • 3.举例
      • [x for x in range(5)]   -->[0,1,2,3,4]
      • [x for x in range(1,5,2)] -->[1,3]
      • [9 for x in range(3)]  -->[9,9,9]
      • [x for x in range(5,20) if x%4==0]  -->[8,12,16]
      • [(x,y) for x in range(1,3) for y in range(4,6)]  -->[(1,4),(1,5),(2,4),(2,5)]
      • [(x,y) for x in range(1,4) for y in range(2,5) if x%2==0 and y%2==0] -->[(2,2),(2,4)]
  • 二、生成器
    • 1.Python中,这种一边循环一边计算的机制,称为生成器:generator。类型
    • 2.创建方法
      • 1.-根据列表推导式创建: 把列表推导式的[],改为()
      • 2.在函数中使用yield变成生成器
      • def fun(length):
        • a,b=0,1
        • n=1
        • while n<=length:
          • yield b
          • a,b=b,a+b
          • n+=1
      • f=fun(5)  --》f就为生成器
    • 3.使用方法
      • 1.next(生成器)   打印出来为yield 后面的值
      • 2.生成器.__next__()  打印出来为yield 后面的值
      • 3.生成器.send(参数) 传参 打印出来为yield 后面的值  参数=yield 值
      • next(f) ->1
      • next(f) ->1
      • next(f) ->2
      • f.__next__() -->3
      • f.__next__() -->5
      • f.send("哈哈") -->8
      • 当促进生成器计算到最后一个元素,继续执行是 StopIteration 异常
      • 4.for 循环 遍历
        • for i in 生成器:
          • print(i)
    • 4. 运行规则
      • 1.当第一次使用next(生成器) 遇到yield 暂停并返回yield 后的值
      • 2.当第二次使用next(生成器) 继续上一次暂停的程序,当循环第二次遇到yield 时暂停 并返回yield 后的值
      • 3.以此类推
  • 三、迭代器
    • 1.可迭代对象 Iterable  可迭代对象不是迭代器
      • 1.集合对象:列表,元组,字典,字符串,集合(set)
      • 2.生成器对象:既是迭代器也是可迭代对象
    • 2.迭代器   Iterator  可以使用next()
    • 3.
      • 判断是否是可迭代对象
        • isinstance(对象,Iterable)
        • from collections import Irerable
      • 判断是否是迭代器
        • from collections import Irerator
        • isinstance(对象,Iterator)
    • 4.可迭代对象转换迭代器  iter(可迭代的)
    • 5.
      • 可迭代对象 能使用 for in 遍历
      • 迭代器   使用next(迭代器) 促进计算 也可以 for in 遍历
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值