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)转换成迭代器。

  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/AYxing/p/8948181.html
Copyright © 2011-2022 走看看