Python编程:深入理解字典
发表时间: 2022-11-18 20:36
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict
键必须是唯一的,但值则不必。
>>> dictone={'1':1,'1':2}>>> dictone{'1': 2}>>> dicttwp={'1':2,'2':2}>>> dicttwp{'1': 2, '2': 2}
值可以取任何数据类型,但键必须是不可变的,如字符串,数字。
>>> dicttree={['1']:1}Traceback (most recent call last): File "<stdin>", line 1, in <module>TypeError: unhashable type: 'list'>>> dicttree={1:[1,2]}>>> dicttree{1: [1, 2]}>>>
如何创建空字典
>>> dicteone={}>>> dicteone{}#用内置函数创建>>> dictone=dict()>>> dictone{}
访问字典的值
>>> dictone={'1':2}>>> dictone['1']2
假如访问不存在的值
>>> dictone['2']Traceback (most recent call last): File "<stdin>", line 1, in <module>KeyError: '2'
如何解决这个问题呢,可以这样访问,如果不存在,就返回默认值
>>> dictone={'1':2,'2':2}>>> print(dictone.get(1,None))None
修改字典的值
>>> dictone={'1':2}>>> dictone['1']=23>>> dictone{'1': 23}
字典相关的删除
>>> dictone={'1':2,'2':2}>>> del dictone['1']#删除值>>> dictone{'2': 2}>>> dictone={'1':2,'2':2}>>> dictone.pop('1')#删除key,这里会返回值2>>> dictone#结果{'2': 2}>>> dictone={'1':2,'2':2}>>> dictone{'1': 2, '2': 2}>>> dictone.popitem()#删除最后的一个keyvalue('2', 2)>>> dictone{'1': 2}>>> dictone.clear()#清空字典>>> dictone{}#删除字典>>> dictone={'1':2,'2':2}>>> del dictone>>> dictoneTraceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'dictone' is not defined
字典长度
>>> dictone={'1':2,'2':2}>>> len(dictone)2
字典复制
>>> dictone={'1':2,'2':2}>>> one=dictone.copy()>>> one{'1': 2, '2': 2}
判断key是否存在
>>> dictone={'1':2,'2':2}>>> '1' in dictoneTrue
字典的每一项
>>> dictone={'1':2,'2':2}>>> dictone.items()dict_items([('1', 2), ('2', 2)])
获取字典所有的key和values
>>> dictone.keys()dict_keys(['1', '2'])>>> dictone.values()dict_values([2, 2])
字典的更新另一个字典
>>> dictone={'1':2,'2':2}>>> dictone.update({'23':1})>>> dictone{'1': 2, '2': 2, '23': 1}
字典增加一个key,如果key不存在,value就设置为默认的
>>> dictone={'1':2,'2':2}>>> dictone.setdefault(3,'2')'2'>>> dictone{'1': 2, '2': 2, 3: '2'}
字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
之前讲列表的时候,我们有列表推导式,通用的,在字典也有。实现方式如下
>>> d = {key : value for key in ['A','B'] for value in [1,2,3]}>>> d{'A': 3, 'B': 3}
大概的字典的相关的应用,到这里就分享完毕了。