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

 

posted @ 2018-04-25 23:35  OYxing  阅读(173)  评论(0编辑  收藏  举报