2018-07-15 高级特性

切片

    list和tuple可使用切片,例如L[x:y]来获得第x到y-1的内容。

    有趣的是,字符串在python中也可以被视作一种list。

迭代

可以用 for key in d ,  for value in d.values() , for k,v in d.items() 来迭代dict中的 key value 或同时迭代二者,默认情况下迭代为key。使用enumerate函数可以将list变为索引-元素对,在迭代时可对二者同时进行调用。

列表生成

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

    (MATLAB表示列表生成在座的各位都是垃圾)

生成器和迭代器

生成器

    生成器在循环过程中不断推算出后续内容,从而减小内存占用,生成器同样可以使用for.. in..调用。

    方法一,可以把列表生成中[]改为()获得。

    方法二,使用yield关键字生成。注意,在有yield的情况下,调用next时执行,遇到yield返回,再次执行时从上次返回的yield语句处继续。

迭代器

    可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。把list、dict、str等Iterable变成Iterator可以使用iter()函数。

你可能感兴趣的:(2018-07-15 高级特性)