在python中,字典是可变数据类型。
可以通过下面案例证明:
>>> dic = {'name': 'chenjun', 'age': 22} >>> id(dic) 1922056241872 >>> dic['gender'] = 'male' >>> dic {'name': 'chenjun', 'age': 22, 'gender': 'male'} >>> id(dic) 1922056241872
可见,字典增加一对键值,内存地址没有发生变化,说明字典是可变数据类型。
字典常用操作如下:
1.增删改查:>>> dic = {'name': 'chenjun'}#增加键值
>>> dic['age'] = 22 >>> dic {'name': 'chenjun', 'age': 22}
#批量增加键值 >>> dic.update({'gender': 'male', 'edu': 'high'}) >>> dic {'name': 'chenjun', 'age': 22, 'gender': 'male', 'edu': 'high'}
#删除指定键并返回其对应值,若键不存该可给定默认值,否则报错 >>> dic.pop('edu') 'high' >>> dic {'name': 'chenjun', 'age': 22, 'gender': 'male'}
#删除一对键值 >>> dic.popitem() ('gender', 'male') >>> dic {'name': 'chenjun', 'age': 22}
#改字典键值 >>> dic['age'] = 23 >>> dic {'name': 'chenjun', 'age': 23}
#查询键对应值,没有该键则报错 >>> dic['name']
'chenjun'
#查询键对应值,没有返回None
>>> dic.get('name')
'chenjun'
#查询字典所有键或所有值或所有键值一起显示,返回对象形式,需要用list()函数显示出来
>>> dic.keys() dict_keys(['name', 'age']) >>> list(dic.keys()) ['name', 'age'] >>> dic.values() dict_values(['chenjun', 23]) >>> list(dic.values()) ['chenjun', 23] >>> dic.items() dict_items([('name', 'chenjun'), ('age', 23)]) >>> list(dic.items()) [('name', 'chenjun'), ('age', 23)]
#清空字典
>>> dic.clear()
>>> dic
{}
2.设置字典默认值
>>> dic = {'name': 'chenjun', 'age': 23}
若原来不存在执行添加操作 >>> dic.setdefault('male', 'man') 'man' >>> dic {'name': 'chenjun', 'age': 23, 'male': 'man'}
若原来已存在则不改变 >>> dic.setdefault('age', 22) 23 >>> dic {'name': 'chenjun', 'age': 23, 'male': 'man'}
3.dict.fromkeys()
>>> userinfo = dict.fromkeys(['name', 'age', 'gender', 'edu'], None) >>> userinfo {'name': None, 'age': None, 'gender': None, 'edu': None}
个人感觉这个功能是为了方便创建字典,在事先知道有哪些属性而不确定取值时可以这样先创建一个字典数据结构。