~~~❤❤❤欢迎来到毛驴儿家做客哦❤❤❤~~~

python基础之列表生成式和生成器

一、列表生成式  

  [ x**2 for x in range(1,11)]

  [生成式(要生成的元素) for循环]

  [ m+n for m in 'adf' for n in 'wer']

     运算式    for循环               for循环

  [ s for s in L1 if isinstance(s,str)]

  条件放在最后

二、定义generator的两种方法。

  第一种:将列表生成器的[]改成()即可。

  [ x**2 for x in range(1,11)]  //列表生成

  ( x**2 for x in range(1,11))  //generator

  第二种:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator

  In [49]: def fib(max):
      ...:     n,a,b = 0,0,1
      ...:     while n<max:
      ...:         yield b
      ...:         a,b = b,a+b
      ...:         n=n+1
      ...:     return 'down'
      ...: 

  In [50]: fib(4)
  Out[50]: <generator object fib at 0x7facec269830>

  

        

posted @ 2017-08-13 17:24  暗夜剑神  阅读(184)  评论(0)    收藏  举报