迭代 复习

Posted on 2019-03-03 15:52  心酒  阅读(121)  评论(0编辑  收藏  举报

如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代(Iteration)。

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

由于字符串也是可迭代对象,因此,也可以作用于for循环

凡是可作用于for循环的对象都是Iterable类型;迭代对象

凡是可作用于next()函数的对象都是Iterator类型,它们表示一个惰性计算的序列; 迭代器

集合数据类型如listdictstr等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。

杨辉三角定义如下:

          1
         / \
        1   1
       / \ / \
      1   2   1
     / \ / \ / \
    1   3   3   1
   / \ / \ / \ / \
  1   4   6   4   1
 / \ / \ / \ / \ / \
1   5   10  10  5   1

把每一行看做一个list,试写一个generator,不断输出下一行的list

 

# -*- coding: utf-8 -*-

def triangles():

  N = [1]
  while True:
    yield N
    N.append(0)
    N = [N[i-1] + N[i] for i in range(len(N))]