一、迭代
1。能使用for循环打印的比如文件、元组、列表、字典等,均是可迭代的,支持迭代协议,其内部有个_next_()方法,能实现迭代元素。
使用:比如文件:f.next()
也可使用全局函数:next()
next()用来移动指针到 下一个元素,迭代打出的变量占据的内存空间少
2。迭代工具
能否迭代是看会不会实现迭代协议:
迭代器对象(比如文件):默认支持迭代,已经实现迭代协议
可迭代对象(比如列表):调用iter()=》iter()用于生成迭代器
使用for可默认帮调用iter(不需额外再写)
判断变量本身是否已经实现迭代器功能:
但是,默认拥有的迭代器仅可用一次。next打印完毕后再次对f使用next则会报错。
对于不具备迭代器的对象,比如列表:通过套一层iter方法即可进行调用next
l=[1,2,3]
res=[]
以上代码和以下 的功能是一致的,以下方法叫做列表推导:返回的是列表
推导表达式中,可迭代的变量都可以放,文件也可以
内置可迭代对象:
1。range(a,b)
2。zip
3。map(函数,列表)表示把列表中的每个值都应用在函数的执行中
实现迭代协议的对象,可以进行迭代。
函数定义与参数
def来定义