python-知识点的复习2

列表生成式:

列表生成式:

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

猜你喜欢

转载自www.cnblogs.com/AYxing/p/8948181.html