1.迭代
默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()
那么,如何判断一个对象是可迭代对象呢?
方法是通过collections模块的Iterable类型判断
如何判断一个变量是不是字符串?
使用内建的isinstance函数
Python内置的enumerate函数可以把一个list变成索引-元素对
2.生成器
在Python中,这种一边循环一边计算的机制,称为生成器:generator。
创建generator:
方法一:只要把一个列表生成式的[]改成(),用for循环遍历元素
方法二:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator
3.迭代器
可以直接作用于for循环的对象统称为可迭代对象:Iterable。可以使用isinstance()判断一个对象是否是Iterable对象
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。可以使用isinstance()判断一个对象是否是Iterator对象
生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。把list、dict、str等Iterable变成Iterator可以使用iter()函数