第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么要得到(鍵)而不是迪克[鍵]?

為什么要得到(鍵)而不是迪克[鍵]?

函數(shù)式編程 2019-06-06 13:05:10
為什么要得到(鍵)而不是迪克[鍵]?今天,我遇到了dict方法get其中,給定字典中的一個(gè)鍵,則返回關(guān)聯(lián)的值。這個(gè)函數(shù)的用途是什么?如果我想在字典中找到一個(gè)與鍵相關(guān)的值,我可以這樣做。dict[key],并返回相同的內(nèi)容:dictionary = {"Name": "Harry", "Age": 17}dictionary["Name"]dictionary.get("Name")
查看完整描述

3 回答

?
ITMISS

TA貢獻(xiàn)1871條經(jīng)驗(yàn) 獲得超8個(gè)贊

它允許您在缺少鍵時(shí)提供默認(rèn)值:

dictionary.get("bogus", default_value)

回報(bào)default_value(無(wú)論你選擇它是什么)

dictionary["bogus"]

會(huì)引起KeyError.

如果省略,default_valueNone,以至于

dictionary.get("bogus")  # <-- No default specified -- defaults to None

回報(bào)None就像

dictionary.get("bogus", None)

會(huì)的。


查看完整回答
反對(duì) 回復(fù) 2019-06-06
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

什么是dict.get()方法?

如前所述,get方法包含一個(gè)指示缺失值的附加參數(shù)。從文件中

get(key[, default])

如果鍵在字典中,則返回鍵的值,否則為默認(rèn)值。如果未給出默認(rèn)值,則默認(rèn)為None,因此方法永遠(yuǎn)不會(huì)引發(fā)KeyError.

一個(gè)例子可以是

>>> d = {1:2,2:3}>>> d[1]2>>> d.get(1)2>>> d.get(3)>>> repr(d.get(3))'None'>>> d.get(3,1)1

有速度提高嗎?

如前所述這里,

現(xiàn)在看來(lái),這三種方法都表現(xiàn)出了相似的性能(在彼此約10%的范圍內(nèi)),或多或少獨(dú)立于單詞列表的屬性。

更早get雖然速度要慢得多,但是現(xiàn)在的速度幾乎可以與返回默認(rèn)值的額外優(yōu)勢(shì)相媲美。但是為了清除所有的查詢,我們可以在一個(gè)相當(dāng)大的列表上進(jìn)行測(cè)試(注意,測(cè)試只包括查找所有有效的鍵)。

def getway(d):
    for i in range(100):
        s = d.get(i)def lookup(d):
    for i in range(100):
        s = d[i]

現(xiàn)在,使用以下方法對(duì)這兩個(gè)函數(shù)進(jìn)行計(jì)時(shí)timeit

>>> import timeit>>> print(timeit.timeit("getway({i:i for i in range(100)})","from __main__ import getway"))20.2124660015
>>> print(timeit.timeit("lookup({i:i for i in range(100)})","from __main__ import lookup"))16.16223979

如我們所見,查找比GET更快,因?yàn)闆](méi)有函數(shù)查找。這可以通過(guò)dis

>>> def lookup(d,val):...     return d[val]... >>> def getway(d,val):...     return d.get(val)... >>> dis.dis(getway)
  2           0 LOAD_FAST                0 (d)
              3 LOAD_ATTR                0 (get)
              6 LOAD_FAST                1 (val)
              9 CALL_FUNCTION            1
             12 RETURN_VALUE        
>>> dis.dis(lookup)
  2           0 LOAD_FAST                0 (d)
              3 LOAD_FAST                1 (val)
              6 BINARY_SUBSCR       
              7 RETURN_VALUE

它在哪里有用?

每當(dāng)您想要在查找字典時(shí)提供默認(rèn)值時(shí),它將非常有用。這減少了

 if key in dic:
      val = key[dic]
 else:
      val = def_val

一字一句,val = dic.get(key,def_val)

在哪里沒(méi)有用呢?

當(dāng)您想返回KeyError聲明特定密鑰不可用。返回默認(rèn)值也有風(fēng)險(xiǎn),即一個(gè)特定的默認(rèn)值也可能是一個(gè)鍵!

有沒(méi)有可能get類特征dict['key']?

是!我們需要實(shí)現(xiàn)__missing__在迪克特子類中。

示例程序可以是

class MyDict(dict):
    def __missing__(self, key):
        return None

一個(gè)小小的示范可以是

>>> my_d = MyDict({1:2,2:3})>>> my_d[1]2>>> my_d[3]>>> repr(my_d[3])'None'


查看完整回答
反對(duì) 回復(fù) 2019-06-06
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個(gè)贊

get接受第二個(gè)可選值。如果字典中不存在指定的鍵,則將返回此值。

dictionary = {"Name": "Harry", "Age": 17}dictionary.get('Year', 'No available data')>> 'No available data'

如果不給出第二個(gè)參數(shù),None會(huì)被歸還。

如果使用索引,如dictionary['Year'],不存在的鍵將引發(fā)KeyError.


查看完整回答
反對(duì) 回復(fù) 2019-06-06
  • 3 回答
  • 0 關(guān)注
  • 408 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)