python中的字典相当于Java或者C++中的hash表,因此熟悉hash表的相关操作的话,对于字典的操作也会很容易理解。
1 语法格式
字典在python中是另一种可变容器模型,有点是可存储任意类型对象。
语法格式:
1)字典的每个键值 key=>value 对用冒号 : 分割;
2)每个键值对之间用逗号 , 分割;
3)整个字典包括在花括号 {} 中 。
如下所示:
1 d = {key1 : value1, key2 : value2 }
需要注意的一些点包括:
1)键是唯一的,但是值不是唯一的,如果键重复了,那么后面的添加的键值对会覆盖前面的;
2)值可以是任何类型,但是键必须是字符串,数字,元组;
2 基本访问
2.1 访问字典里的值
方法是:把相应的键放入方括号中
1 dict = { 'Name': 'Zara', 'Age': 7, 'Class': 'First'}2 输入:dict['Name']3 输出:Zara
注意:当访问到字典中没有的键时,这是会出错
2.2 修改字典里的值
1 dict = { 'Name': 'Zara', 'Age': 7, 'Class': 'First'}2 3 dict['Age'] = 8 # 更新,当存在该键时是修改或更新4 dict['School'] = "RUNOOB" # 添加,当没有该键时是添加
2.3 删除字典元素
字典支持删除单个元素或者清空字典操作
删除单个条目用del,当del用于删除字典时是删除整个字典, 清空字典用clear方法,只是清空,但是没有删除。
dict = { 'Name': 'Zara', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键是'Name'的条目dict.clear() # 清空词典所有条目del dict # 删除词典
3 字典中键的特性
字典中的值可以没有任何限制的去python中的任何一种对象,可以是标准对象,也可以是用户自定义的对象。
但是键不可以。
3.1 不允许同一个键出现两次,若出现两次及以上赋值,则最后一次出现的会覆盖掉之前的值
3.2 键必须不可变,所以可以用数字,字符串,元组,但是不可以用列表
dict = {['Name']: 'Zara', 'Age': 7}
上例中['Name']是列表,不可以作为字典中的键,会出现错误。
4 字典内置的函数&方法
4.1 内置的函数
1) 比较两个字典 cmp(dict1, dict2)
若相等,则返回0;
若dict1 > dict2, 则返回1;
若dict1 < dict2, 则返回-1;
2) 计算字典中元素个数,即键值对个数 len(dict)
3)输出字典可打印的字符串表示 str(dict)
{ 'Age': 7, 'Name': 'Zara'}
4)返回变量的类型 如果是字典,则返回字典类型 type(varible)
4.2 内置方法
1)清空字典 dict.clear()
dict是字典的名称,清空后长度变为0
2)字典对象浅拷贝 dict.copy()
所谓浅拷贝就是把字典对象拷贝一份,但是字典对象中的子对象没有拷贝,如某个键对应的值是列表对象,那么该对象没有拷贝,改变其中一个字典对象中的该列表,那么另一个字典对象也会跟着改变。
3)判断字典中是否含有某个key, dict.has_key(key)
如果存在,则返回true,不存在返回false
4)返回指定键的值 dict.get(key)
如果存在,直接返回对应的值,如果不存在,返回默认值,即None