只是在for循环中相当于对链表的操作,它会自动调用next方法! 字典的迭代器会遍历它的键在这个过程中,不能改变这个字典!不能删除、添加数据 要先记录要删除的元素嘚索引遍历完后再删除,data_info.keys()在python key value2中是一个独立的列表python key value3中是迭代器,需要我们list转换生成一个独立的列表
只是在for循环中相当于对链表的操作,它会自动调用next方法! 字典的迭代器会遍历它的键在这个过程中,不能改变这个字典!不能删除、添加数据 要先记录要删除的元素嘚索引遍历完后再删除,data_info.keys()在python key value2中是一个独立的列表python key value3中是迭代器,需要我们list转换生成一个独立的列表
我们是可以继承dict 的代码如下
从結果我们发现并没有乘积。为了找原因也得爬源码查找dict 的setitem方法如下
这个方法没有做任何处理并不适用继承dict,难道就没有办法吗
python key value 给你关閉一扇窗,会给你再开一个门这个门就是
继承Userdict 可以实现乘积,请看代码
刨析源码查看 这个方法
道理很明白了吧 我也不用解释了。
下边介绍重量级的人物就是 defautdict
因为他可以重写一个魔法函数 missing ,我们按照顺序介绍下
如果不存在我会给个默认值
1.类型名称作为初始化函数参数
2.可以调鼡函数作为初始化函数参数
defautdict 作为dict 子类用处很大上边的例子调用了方法作为默认值,这个在实际应用的用的最多请大家记牢。