- 创建:字典可嵌套
{key1:value1,key2:value2}
说明:字典是由多个键以及其对应的值组成的键值对组成的,字典以左大 括号开始,并以右大括号结束,键与值之间用冒号分隔,键值对儿之间用 逗号分隔;
注意:字典中的键是唯一的 - 基本操作
通用的有:len[d] , d[k] = v , del d[k] , k in d
特点:
第一点:键(key)的类型任意
第二点:自动添加,key不存在的时候自动添加
第三点 : 成员资格, k in d 找的是key,不是值value,而list中v in l 找的是value - 字典方法:
- clear:
说明:用于清除字典中全部的键值对儿,调用完该方法后,原字典变成一 个空字典;
注意:该方法直接操作原字典,调用后不返回值(或者说直接返回 None ) - get:
说明:是个更宽松的访问字典项的方法,如果键在字典中,则返回值, 如果不在,返回空,也可以给不存在的键指定默认值
说明:可以检查字典中是否含有给出的键,python3中已经 不 包含此 项,可以用 k in dict 的方式代替 - items和iteritems:
说明:items以列表方式返回字典中的键值对,iteritems以迭代器对象 返回键值对儿(Python3中不再支持) - keys和iterkeys:
说明:返回字典中的 键,iterkeys返回键的迭代器 - pop:
用于获取给定键的值,并将该键值对从字典中移除 - popitem:
说明:用于随机弹出字典中的键值对儿;可以用于清除一个字典 - update:
说明:将新字典中的键值对儿更新到原字典中,如果新字典中有的键值 对儿,原字典中没有,则会在原字典中增加新键值对儿; - values和itervalues:
参考上面的keys,items - copy和deepcopy:
说明:用于创建一个新的字典,用两种复制方法:copy和deepcopy
注意:
copy在复制过程中,如果字典中的 值 对象是复杂对象,如列表, 字典等等,则拷贝完后,新的字典中的 值 指向的还是原字典中的 对象,所以修改新对象中的 值 ,同时也是修改原字典中的值,但 是如果字典中的对象是普通类型,如是数字,字符串等,则修改新字 典不会影响原字典。
copy 浅层复制
deepcopy 深层复制
例子:
1: #copy的用法和效果
2: >>> x = {'Name' : 'Bill', 'Colors': {'red', 'green', 'blue'}}
3: >>> y = x.copy()
4: >>> y
5: {'Colors': ['blue', 'green', 'red'], 'Name': 'Bill'}
6: #删除颜色列表中的 ‘red’
7: >>> x['Colors'].remove('red')
8: >>> x
9: {'Colors': ['blue', 'green'], 'Name': 'Bill'}
10: #y字典中的颜色列表也发生的改变
11: >>> y
12: {'Colors': ['blue', 'green'], 'Name': 'Bill'}
13: >>>
14:
15:
16: #deepcopy的用法和效果
17: >>> from copy import deepcopy
18: >>> x = {'colors':['red','green','blue'],'name':'Bill'}
19: >>> x
20: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
21: #将x深拷贝给y
22: >>> y = deepcopy(x)
23: >>> y
24: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
25: #修改x
26: >>> x['colors'].remove('red')
27: >>> x
28: {'colors': ['green', 'blue'], 'name': 'Bill'}
29: #y没有发生改变
30: >>> y
31: {'colors': ['red', 'green', 'blue'], 'name': 'Bill'}
32: >>>
33: 、`