python 高级特性

切片:

减少循环代码



迭代:

list  tuple  其他:dict ,字符串,



注意输出要写k,v 而不是key,value


判断是否可以迭代:

通过collections模块的Iterable类型判断



enumerate函数把list变成索引-元素对:




列表生成器:

... for ...in ...

  



判断是否为字符串:

isinstance



生成器:

一边循环,一边计算:generator



菲波那切数列:

            

要把fib函数变成generator,只需要把print(b)改为 yield b,返回的是generator对象



可迭代对象:

Iterable: 可以直接作用于for循环的对象

迭代器对象:

Iterabor:可以被next()函数调用并不断返回下一个值的对象

两者均可以使用isinstance判断

集合数据类型如:list ,dict ,str 等是可迭代对象,但不是迭代器,但可以通过iter() 函数获得一个迭代器对象