一、字典
[] 中括号定义列表
() 括号定义元组
{}大括号定义字典
字典是一个可变容器,可存储任意类型
每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割:
d = {key1 : value1, key2 : value2 }
1,定义方法:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
x=dict()
y=dict(a=1,b=3,c='szm')
2,访问方法:
print "dict['name']: ", dict['name'];
print "dict['age']: ", dict['age'];
3,修改字典
dict1['age'] = 20
4,删除字典元素 、 删除字典
删除字典元素: del dict1['name']
删除整个字典:del dict1
5,字典常用方法:
(1) 删除字典内所有元素 :dict.clean()
(2)get(key)方法 返回指定键的值 找不到返回None
(3)has_key(key) 方法 如果key在字典里存在则返回True 否则返回False
(4) keys() 方法 以列表形式返回所有的键
(5)values()方法 以列表形式返回字典中所有的值
(6)copy() 方法 返回一个字段的半深拷贝(复制)
直接复制和copy()的区别 以及深拷贝
dict1 = {'user':'runoob','num':[1,2,3]}
dict2 = dict1 # 浅拷贝: 引用对象 当dict1 改变的时候 dict2也会跟着改变
dict3 = dict1.copy() # 半深拷贝(拷贝父对象,不会拷贝对象的内部的子对象):深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 当dict1的(一级目录)'user'改变的时候,dict2不改变 --深拷贝, 当dict1的'num'里面的list改变的时候 dict2也会改变--浅拷贝
但要注意 以下这种情况依然改的是一级目录 dict2并没有改变
深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。
(7)dict1.update(dict2)
把字典dict2的键/值对更新到dict里 类似于字符串的 +
(8)pop(key) 删除 跟del一样
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值
(9)items() 以列表的形式返回(key,val)元组数组