久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python 字典類型5

我們接著來看字典還有哪些需要掌握的內(nèi)置方法。

我們看Pycharm給我們的提示,items講過了,copy其實(shí)也是講過的,是在我們前面講深淺拷貝的時候講的,其實(shí)就是把字典淺拷貝一份,列表也有這個方法。

values講了、keys講了、pop講了、clear講了、popitem講了、get講了、formkeys講了。只有最后兩個setdefault和update沒有講。

來看下這兩個方法的作用是什么。

首先來看update,其實(shí)看到這個名字我們就知道了,update本身這個單詞的意思就是更新,它的作用就是更新字典。

這就是我們前面講過的取名字要見名知意,不管你是定義變量名還是我們要自己寫的一些功能,都要這么做。讓別人看到這個名字,就大概知道這個功能有什么作用。

說到更新,很多人第一時間反應(yīng)就想到了游戲更新,我們就拿游戲更新舉例子,在我們更新游戲的時候,其實(shí)就是把原有的數(shù)據(jù)資源保留,然后把新的數(shù)據(jù)資源加進(jìn)去,同時我是不是還有可能把一部分原有的資源替換掉。

比如王者榮耀更新的時候,把原有的模型替換成更加精致的模型,這個新的數(shù)據(jù)就要去替換原來的數(shù)據(jù)。

所以一個更新的過程簡單來說就是保留不需要修改的數(shù)據(jù)替換需要修改的數(shù)據(jù),增加新數(shù)據(jù)。

對于字典更新來說也類似,我現(xiàn)在定義一個字典。

hero = {'名字': '李白',
        '職業(yè)': '刺客',
        '移速': '550',
        '攻速': '130'}

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

new = {'攻速': '120'
    , '技能1': '將進(jìn)酒'
    , '技能2': '神來之筆'
    , '技能3': '青蓮劍歌'}

現(xiàn)在我們來更新hero這個字典。hero.update(),括號里面寫new。再打印一下。

hero = {'名字': '李白',
        '職業(yè)': '刺客',
        '移速': '550',
        '攻速': '130'}
new = {'攻速': '120'
    , '技能1': '將進(jìn)酒'
    , '技能2': '神來之筆'
    , '技能3': '青蓮劍歌'}
hero.update(new)
print(hero)

這樣就將hero這個字典里李白的移速降低成120,然后增加三個技能。這就是update的作用。

用新字典來更新老字典,老字典中存在的值就會被修改掉。老字典中不存在的值就會增加進(jìn)去。

接下來我們最后來看setdefault,setdefault翻譯成中文的意思就是設(shè)置默認(rèn)值。也就是給字典的某一個key設(shè)置默認(rèn)值。

如果這個key在字典中,就返回對應(yīng)的值,如果這個key不在字典中,就要給這個字典添加這個key。并且讓這個key的值為我們設(shè)置的默認(rèn)值,返回這個默認(rèn)值。

如果我們調(diào)研setdefault時,只傳了一個參數(shù)key給它,這個默認(rèn)值就為None。

我先定義一個字典,假設(shè)這個字典就是我們采集到用戶注冊我們軟件的信息。剛剛我們說setdefault是有返回值的,如果字典本身有這個值就返回這個值,如果沒有就返回None。

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

然后我們來打印一下看。

第一個setdefault,age就是它本來的值18,不存在的這個性別,就返回成了None。

如果我不想這個性別為None,就在性別后面?zhèn)鞯诙€參數(shù),寫你想要傳的參數(shù),比如我寫一個保密。

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

未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » Python 字典類型5

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞