字典的使用_2
摘要:本内容为字典的使用的介绍。
01.字典的使用基础介绍
1.1字典的与使用基础信息
接下来进行删除的详细讲解,删除字典中的间值对。Print(d) ,可以使用 Del 来删除字典中的 Key-value ,除了删除元素,也可以删除字典中的间值对和变量。
Print(d)
保存执行:
Del d['a'] Print(d)
保存,执行:
Del d['a'] Del d['b'] Print(d)
保存,执行:
此处有两个方法:Pop 、Popitem
Popitem( )可以随机删除字典中的一个键值对,一般都会删除最后一个键值对。
D.popitem( )
先进性打印:
D.popitem( ) Print(d)
保存,执行:f没了
D.popitem( ) D.popitem( ) Print(d)
保存,执行:e也没有了
Result d.popitem() Print('result =',result)
保存,执行:返回‘e’,5
删除之后,它会将删除的Key-value作为返回值返回,返回的是一个元组,元组中有两个元素,第一个元素是删除的 Key ,第二个是删除的 Value 。
Pop(key[,default]) //多个参数,可以传key,根据key删除字典中的key-value Result d.pop('f') Print('result ='result)
保存,执行:
Result d.pop('d') Print('result ='result)
保存,执行:d没了,d已经被删了,返回值4,会将被删除的Value返回!返回的是值
Result d.pop('d') Result d.pop('z') Print('result ='result)
保存执行:如果删除不存在的key,会抛出异常
Result d.pop('d') Result d.pop('z',’这是默认值’) Print('result ='result)
保存执行:如果指定了默认值,再删除不存在的 Key 时,不会报错,而是直接返回默认值。
Result d.pop('d') Result d.pop('z',’这是默认值’) Del d['z'] Print('result ='result) Print(d)
保存执行: z不存在,报错
Result d.pop('d') Result d.pop('z',’这是默认值’) Result=d.popitem( ) Print('result ='result) Print(d)
保存执行:
Result=d.popitem( ) Result=d.popitem( ) Result=d.popitem( )
调用三次,保存执行:空了
再次调用一个:
Result=d.popitem( ) Result=d.popitem( ) Result=d.popitem( ) Result=d.popitem( )
保存执行:报错
当使用 Popitem( )删除一个空字典时,会抛出异常KeyError:'popitem( ):dictionary is empty
Clear( )用来清空字典
删除所有项。
Result=d.popitem( ) Result=d.popitem( ) Result=d.popitem( ) Result=d.popitem( ) D. clear( )
执行结果:没有了
1.2接下来说明Copy
Copy( ) 该方法用于对字典进行浅复制,某些情况下需要创建副本
D={'a':1,b':2,'c':3} D2=d Print('d =',d) Print('d2 ',d2)
保存,执行:打印的结果一样,此处不算作复制,D,D2指向同一个对象,到此对象仅有一个,都是同一个对象,所以并不叫复制。
D={'a':1,b':2,'c':3} D2=d d['b']=10 Print('d =',d) Print('d2 ',d2)
保存,执行:
D={'a':1,b':2,'c':3} D2=d.copy Print('d =',d) Print('d2 ',d2)
保存,执行:这时是一样的,但是区别很大,区别在于是两个对象。
D={'a':1,b':2,'c':3} D2=d.copy Print('d =',d,id(d)) Print('d2 ',d2,id(d2))
保存,执行:显示ID不同
若D2=D,则保存执行:ID相同
复制以后的对象,和原对象是独立,修改一个不会影响另一个
D={'a':1,b':2,'c':3} D2=d.copy d[’a']=100 Print('d =',d,id(d)) Print('d2 ',d2,id(d2))
执行效果:
注意:浅复制仅复制对象中的值,假如字典中的值还作为一个字典
如下例:
D={'a':1,b':2,'c':3} D2=d.copy D={('a':{'name':'孙悟空',’age’:18},b':2,'c':3} Print('d =',d,id(d)) Print('d2 ',d2,id(d2))
保存执行:
D2=d.copy()
保存执行:两个一样,但是地址不一样
D2['a']['name']=’猪八戒’ //实际上修改的a的 Name 值
保存执行:两个都变了,
注意:浅复制会简单复制对象内部的值,如果值也是一个可变对象,这个可变对象不会被复制。
{'name':'孙悟空',’age’:18}是一个字典,字典内部的字典,复制仅复制字典的本身,若内部还有一个字典,此字典是不会被复制,直接将引用的地址加入,所以不会被复制,则为一个浅复制。对对象内部的对象不会被真正的复制。一般情况下,均使用浅复制。深层次复制将所有均复制,会出现性能差的问题,所以深层次复制会使用比较少,较多使用浅复制。关于序列 Copy 对比进行。
以上是字典的使用方法。