python-tips

列表生成式

  • Python内置的非常简单却强大的可以用来创建list的生成式
  • 写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来

生成器

  • 当我们需要创建100万个元素的列表的时候,如果这些元素可以按照一定的规则去生成,那么我们就不需要在内存中同时维护这100万个元素,而是通过在迭代中边去生成元素来实现.
  • 把一个列表生成式的[]改成(),就创建了一个generator
  • 需要注意的是,我们一般不会显式调用next方法,而是使用for in迭代
  • 如果推算的算法比较复杂,用类似列表生成式的for循环无法实现的时候,还可以用函数来实现。
    • generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。