zoukankan      html  css  js  c++  java
  • python-知识点的复习2

    总结:

    1、什么是生成器?

      在python 中,边循环边计算的机制,称为生成器。

    2、什么是迭代器?

      1、可以被next()函数调用,并不断生成新的值的对象称迭代器。 

      2、包括可以被next()函数调用的生成器和带yield关键字生成器函数。

      3、它表示一个惰性计算的数列。

    3、什么是可迭代对象Iterable

      可以被for循环的对象称iterable(可迭代对象)

      1、集合数据类型:

        list、dict、set、tuple、str

      2、生成器:

        next()函数调用的生成器 和带yield关键字的生成器函数。

      3、用isinstrance()判断一个对象是否可迭代对象(Iterator)。

      4、用iter()函数把可迭代对象(list、dict、str等)变成迭代器(iterator)。

    -------------------------------------------END----------------------------------------------------

    列表生成式:

    列表生成式:

      li=[x+1 for x in range(10)]

      列表生成式取值:

      print(li)

    生成器:

      g = (x+1 for x in range(10))

      1、什么叫列表生成器:

        在python中一边计算一边生成值的机制,叫生成器。

      2、列表生成器取值:

        1、 通过next()函数取值——eg:  next(g)

          1、列表生成器可以通过next()函数取值,如果没有值就会跑出stopiteration 异常

        2、通过for循环取值。

          1、通过for 循环则不会报错

      3、生成器也可以通过函数去实现

        1、斐波拉契函数

    def fib(max):
        n,a,b = 0,0,1
        while n<max:
         print(b) a,b
    =b,a+b n+=1 return 'done' print(fib(10))

        2、将print 改为yield就成为带函数生成器

    def fib(max):
        n,a,b = 0,0,1
        while n<max:
            yield b
            a,b=b,a+b
            n+=1
        return 'done'
    name = fib(10)
    print(name.__next__())
    
    for i in fib(3):
        print(i)

        3、带yield函数的生成器,通过next()生成值,遇到yield返回。

    迭代器:

       1、可迭代对象有两种:

          1、一种是可以通过for循环的数据类型——包括list 、dict、set、tuple、str

          2、一种是生成器,通过next()取值和带yield的函数生成器。

       2、可以直接别for循环的成可迭代对象:iterable。

       3、可以通过isinstance()来判断一个对象是否可迭代对象。

       4、可以用iter()函数把可迭代对象(list、dict、str)转换成迭代器。

  • 相关阅读:
    ubuntu18 faster-rcnn
    osgViewer应用基础
    error C2086: “int WINGDIAPI”: 重定义
    test5
    test3
    test2
    Kinect关节数据
    MySQL乱码问题以及utf8mb4字符集
    mysql5.7执行sql语句报错:In aggregated query without GROUP BY, expression #1 of SELECT list contains nonagg
    yum安装软件报错:curl#6
  • 原文地址:https://www.cnblogs.com/AYxing/p/8948181.html
Copyright © 2011-2022 走看看