欢迎来我Python萌新的小站

Python笔记:字典的增删改查

在做《Python 实例:爬取电子课本封面》的更新时,需要通过抓取导航栏中的内容来生成字典,发现之前比较少用到字典相关的内容,于是网上查了一下,收集在此:

在遇到两个字典合并时,有如下几种方法:

这种方法使用的是 dict() 工厂方法(Python2.2以上版本)。如果输入参数是另一个字典(此处为dict1),则调用该工厂方法时会从dict1中复制内容生成新的字典。该工厂方法从Python2.3版本开始,允许接受字典或关键字参数字典进行调用。但应当注意,对于这种调用方式, dict() 最多只接受一个参数(或者说是一组 name=value 的可变长参数),而不会再接受另一个字典。因此直观上的简单使用dict1与dict2两个参数的方法会提示如下错误:

这也就是我们看到上面的方法2中使用的是**dict2的原因。熟悉C的朋友应当注意,在这里*的意思并不代表指针,这是Python中可变长函数参数的写法(关于可变长函数参数的相关知识见下文)。在这里,**的意思是基于字典的可变长函数参数。

方法2执行的是如同下面方法3中的代码,即先将dict1拷贝给dictMerged,在执行 update() 操作:

对于第一步的复制操作而言,这种使用内建方法 copy() 的复制方式,和方法2中的复制结果是一样的,但根据《Core Python Programming (2nd edition)》一书中7.3.2节所述,从已存在字典中生成新字典的方式 dictNew = dict( dictOld ) 较内建方法 dictNew = dictOld.copy() 会慢一些,因此书中推荐使用 copy() 方法。

因此,从这几种方式看来,方法3的效率最高,并且代码也比较易读。

 

喜欢 (0)分享 (0)
发表我的评论
取消评论
友情提示:插入代码时请使用:  <pre>要插入的代码</pre>   以达到最佳效果!

表情     7 + 2 = ? (必填)

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址