Python高级编程(27):dict的常用方法
本篇我们来聊一下Python中dict的常用方法,这个还是挺重要的,所以可以多花点时间学习一下。
1 | a = { |
创建字典的方式:1、d = {key1:value1,key2:value2} ;2、dict([(key1,value1),(key2,value2)]) ;3、关键词参数:dict(key1=value1,key2=value2)
字典也是可以使用del关键词来删除元素和整个字典的;字典也有许多内建的方法,但是不可以像列表、元组那样频繁使用;
dict.clear()方法用于删除字典中内的所有项(项就是键值对),输出打印dict.clear(obj)显示None,注意这一点和直接把空字典赋值的区别。
深复制:from copy import deepcopy;deepcopy()方法,也就是说原样本通过深复制出来的复制品无论怎样修改,对于原样本没有任何关系。
浅复制:dict.copy(),原样本通过浅复制出来的复制品,如果是对于不可变对象的修改,那么原样本不会发生变化;对于可变对象的修改,原样本也会随之发生变化。
dict.fromkeys(seq[,value])方法,该方法用于创建一个新的字典,以序列seq中的元素做字典的键,value为字典所有键对应的初始值,如果value参数不传值,则默认为None。该方法返回结果是一个字典。fromkeys()方法使用给定的键值建立新的字典,每个键默认对应的值为None。
dict.get(key,default=None)方法,用于返回指定键的值,如果值不在字典中就返回默认值None。使用其他方法试图访问字典中不存在的键值对时会出错,而使用get方法就不会,而是返回一个None对象。
dict.items()方法,以列表返回可遍历的(键,值)元组数组,该方法不需要参数。直接输出打印dict.items()的结果是:dict_items([(“key1”,”value1”), (“key2”,”value2”)])。
dict.keys()方法,以列表返回一个字典所有的键,该方法不需要参数。直接输出打印dict.keys()的结果是:dict_keys([“key1”, “key2”])。
dict.values()方法,以列表返回一个字典所有的值,该方法不需要参数。直接输出打印dict. values ()的结果是:dict_values([“value1”, “value2”])。(注意返回的列表里面可以有重复值)
dict.setdefault()方法,该方法和get()方法类似,用于获得与给定相关联的值。如果键不存在于字典中,就会更新字典,添加键并将值设为默认值。Dict.setdefault(key, default=None)其中key代表查找的键值,default代表键不存在时设置的默认键值,该方法没有任何返回值。
字典不属于序列,因此字典的合并必须使用dict.update(dict2)方法,用于将字典dict2的键值对更新到dict里面。直接输出打印dict. update(dict2)的结果是:None。注意如果后面待添加的字典里面和前面具有相同的键,则后面的键会将前面的键进行覆盖。
update可以将一个字典,一个赋值表达式,或者一个元组(嵌套元组),列表(嵌套元组)合并到字典中,具体操作如下:
1 | b = {'name': 'envy'} |
上面为什么是需要嵌套元组,可以查看dict的源码了解一下:
1 | def update(self, E=None, **F): # known special case of dict.update |
列表是没有key的,因此无法满足要求。