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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

字典和默認(rèn)值

字典和默認(rèn)值

慕妹3146593 2019-09-21 14:34:22
假設(shè)connectionDetails是Python字典,那么像這樣的重構(gòu)代碼的最佳,最優(yōu)雅,最“ pythonic”的方法是什么?if "host" in connectionDetails:    host = connectionDetails["host"]else:    host = someDefaultValue
查看完整描述

3 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個贊

像這樣:


host = connectionDetails.get('host', someDefaultValue)


查看完整回答
反對 回復(fù) 2019-09-21
?
慕運(yùn)維8079593

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超5個贊

您也可以這樣使用defaultdict:


from collections import defaultdict

a = defaultdict(lambda: "default", key="some_value")

a["blabla"] => "default"

a["key"] => "some_value"

您可以傳遞任何普通函數(shù)而不是lambda:


from collections import defaultdict

def a():

  return 4


b = defaultdict(a, key="some_value")

b['absent'] => 4

b['key'] => "some_value"


查看完整回答
反對 回復(fù) 2019-09-21
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個贊

雖然這.get()是一個很好的習(xí)慣用法,但是它比if/else(比try/except大多數(shù)情況下可以預(yù)期字典中鍵的存在要慢):


>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="try:\n a=d[1]\nexcept KeyError:\n a=10")

0.07691968797894333

>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="try:\n a=d[2]\nexcept KeyError:\n a=10")

0.4583777282275605

>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="a=d.get(1, 10)")

0.17784020746671558

>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="a=d.get(2, 10)")

0.17952161730158878

>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="if 1 in d:\n a=d[1]\nelse:\n a=10")

0.10071221458065338

>>> timeit.timeit(setup="d={1:2, 3:4, 5:6, 7:8, 9:0}", 

... stmt="if 2 in d:\n a=d[2]\nelse:\n a=10")

0.06966537335119938


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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