2018-07-15 高级特性
2018-07-15 本文已影响0人
Tyon
切片
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()函数。