python 学习笔记3 2018-03-31

一、字典

[]  中括号定义列表

() 括号定义元组

{}大括号定义字典

字典是一个可变容器,可存储任意类型

每个键值 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 跟着改变

但要注意 以下这种情况依然改的是一级目录  dict2并没有改变


dict2没有改变

深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。

深拷贝,需要引入copy模块

(7)dict1.update(dict2)  

把字典dict2的键/值对更新到dict里   类似于字符串的 +

(8)pop(key)  删除  跟del一样

删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值

(9)items()   以列表的形式返回(key,val)元组数组


键值对


键值分开

你可能感兴趣的:(python 学习笔记3 2018-03-31)