且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

字典的使用_2| 学习笔记

更新时间:2022-09-06 18:15:13

开发者学堂课程【Python Web 开发基础字典的使用2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/600/detail/8717


字典的使用2


内容简介:

(一)删除

(二)复制


(一)删除

关于字典里面键值对的删除,可以使用del来删除字典中的 key-value,也可以用来删除变量。

首先 print(d)看到里面有{'a':1,'b':2,'c'=3,'d':4,'e':5,'f'=6},调一个 del d['a'],这样执行 a 就被删掉了。有两种方式,一个是 pop,一个是 popitem。

Popitem 可以随机删除字典中的键值对,一般都会删除最后一个键值对,删除之后,他会将删除的 key-value 作为返回值返回,返回的是由两个元素的元组,第一个元素是删除的 key,第二个是删除的 value。当使用 popitme()删除一个空字典时,会抛出异常 KeyError对{'a':1,'b':2,'c'=3,'d':4,'e':5,'f'=6}进行 d.popitem(),执行之后最后一个 f 就没了。我们直接用 result=d.popitem()输出 result 看到它是有返回值的。

pop 是根据 key 删除字典中的 key-value,会将被删除的 value 返回,如果删除不存在的 key,会抛出异常;指定了默认值,再删除不存在的 key 时,不会报错,而是直接返回默认值。输入 result=d.pop('d')输入 print('result'=,result),然后 print(d),执行之后 d 就没有了。如果写一个没有的键,result=d.pop('z'),它就会报错。但如果输入 result=d.pop('d','这是默认值'),则不会报错。需要注意的是 del d['z'],这时也会报错。用 result=d.popitem()调三次,里面就空了,再调一个就会报错,这个字典是空的。

clear,用来清空字典。


(二)复制

copy(),用于对字典进行浅复制。复制一个d={'a':1,'b':2,'c'=3},如果我想创建一个 d 的独立的副本,直接输入 d2=d。打印 print('d=',d),print('d2=',d2),执行之后,两个都是一样的,但是这个不算复制,因为这两个指向的对象只有一个量,改变一个,另一个也会改变。

此时调一个 d.copy(),这个时候打印也是一样的,如果 print('d=',d,id(d)),print('d2=',d2,id(d2))执行的话,可以看到 id 是不一样的,复制以后的对象和原对象是独立的,修改一个不会影响另一个。而这个浅复制是指只复制对象内部值,如果值也是一个可变对象,这个可变对象不会被复制。d={'a':{'name':'孙悟空','age':18},'b':2,'c'=3},打印出来。

如果用 d2=d.copy(),d2['a']['name']='猪八戒',执行之后就会发现两个都变了。深层复制性能会很差,所以我们一般都使用浅复制。