Python 字典类型5

我们接着来看字典还有哪些需要掌握的内置方法。

我们看Pycharm给我们的提示,items讲过了,copy其实也是讲过的,是在我们前面讲深浅拷贝的时候讲的,其实就是把字典浅拷贝一份,列表也有这个方法。

values讲了、keys讲了、pop讲了、clear讲了、popitem讲了、get讲了、formkeys讲了。只有最后两个setdefault和update没有讲。

来看下这两个方法的作用是什么。

首先来看update,其实看到这个名字我们就知道了,update本身这个单词的意思就是更新,它的作用就是更新字典。

这就是我们前面讲过的取名字要见名知意,不管你是定义变量名还是我们要自己写的一些功能,都要这么做。让别人看到这个名字,就大概知道这个功能有什么作用。

说到更新,很多人第一时间反应就想到了游戏更新,我们就拿游戏更新举例子,在我们更新游戏的时候,其实就是把原有的数据资源保留,然后把新的数据资源加进去,同时我是不是还有可能把一部分原有的资源替换掉。

比如王者荣耀更新的时候,把原有的模型替换成更加精致的模型,这个新的数据就要去替换原来的数据。

所以一个更新的过程简单来说就是保留不需要修改的数据替换需要修改的数据,增加新数据。

对于字典更新来说也类似,我现在定义一个字典。

hero = {'名字': '李白',
        '职业': '刺客',
        '移速': '550',
        '攻速': '130'}

然后再写一个新的字典,把李白的攻速降低10,然后增加技能。

new = {'攻速': '120'
    , '技能1': '将进酒'
    , '技能2': '神来之笔'
    , '技能3': '青莲剑歌'}

现在我们来更新hero这个字典。hero.update(),括号里面写new。再打印一下。

hero = {'名字': '李白',
        '职业': '刺客',
        '移速': '550',
        '攻速': '130'}
new = {'攻速': '120'
    , '技能1': '将进酒'
    , '技能2': '神来之笔'
    , '技能3': '青莲剑歌'}
hero.update(new)
print(hero)

这样就将hero这个字典里李白的移速降低成120,然后增加三个技能。这就是update的作用。

用新字典来更新老字典,老字典中存在的值就会被修改掉。老字典中不存在的值就会增加进去。

接下来我们最后来看setdefault,setdefault翻译成中文的意思就是设置默认值。也就是给字典的某一个key设置默认值。

如果这个key在字典中,就返回对应的值,如果这个key不在字典中,就要给这个字典添加这个key。并且让这个key的值为我们设置的默认值,返回这个默认值。

如果我们调研setdefault时,只传了一个参数key给它,这个默认值就为None。

我先定义一个字典,假设这个字典就是我们采集到用户注册我们软件的信息。刚刚我们说setdefault是有返回值的,如果字典本身有这个值就返回这个值,如果没有就返回None。

info = {'name': '于谦', 'age': '55'}
info.setdefault('age')
info.setdefault('性别')
print(info)

然后我们来打印一下看。

第一个setdefault,age就是它本来的值18,不存在的这个性别,就返回成了None。

如果我不想这个性别为None,就在性别后面传第二个参数,写你想要传的参数,比如我写一个保密。

info = {'name': '于谦', 'age': '55'}
info.setdefault('age')
info.setdefault('性别', '保密')
print(info)

未经允许不得转载:445IT之家 » Python 字典类型5

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏