1.文件读写知识点补充
read():读取字符个数,传入参数为要读取的字符数。
tell():取得光标当前所在位置。
truncate():从当前光标位置开始,将后面内容全截掉。
2.默认字典,collections.defaultdict()
collections.defaultdict会返回一个类似dictionary的对象,注意是类似的对象,不是完全一样的对象。这个defaultdict和dict类,几乎是一样的,除了它重载了一个方法和增加了一个可写的实例变量。这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如default(list)则创建一个类似dictionary对象,里面任何的values都是list的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是list()的默认值[].
3.有序字典,collections.OrderedDict(),OrderedDict是dict的子类,它记住了内容添加的顺序。
4.计数器,collection.Counter(),
计数器(Counter)是一个容器,用来跟踪值出现了多少次。和其他语言中的bag或multiset类似。
计数器支持三种形式的初始化。构造函数可以调用序列,包含key和计数的字典,或使用关键字参数。
5.函数动态参数传递,**kwargs传入的值生成字典,*args传入的值生成元组。
6.动态参数实现字符串格式化
7.深浅拷贝
我们希望拷贝的对象是独立的,修改时不要影响其它值,这种我们称为深拷贝。实现深拷贝我们需要引用一个copy模块,copy模块有两个函数可用,一个是copy浅拷贝;另一个是deepcopy深拷贝。
浅拷贝时修改元素内容会影响被拷贝的,而深拷贝则不会影响,如下: