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

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

Deftdict的嵌套defaultdict

Deftdict的嵌套defaultdict

有只小跳蛙 2019-07-20 09:48:18
Deftdict的嵌套defaultdict是否有辦法使defaultdict也成為defaultdict的缺省值?(即無(wú)限級(jí)遞歸defaultdict?)我想做的是:x = defaultdict(...stuff...)x[0][1][0]{}所以,我可以x = defaultdict(defaultdict),但這只是第二個(gè)層次:x[0]{}x[0][0]KeyError: 0有一些食譜可以做到這一點(diǎn)。但是,僅僅使用正常的defaultdict參數(shù)就可以做到這一點(diǎn)嗎?注意,這是在詢問(wèn)如何進(jìn)行無(wú)限級(jí)別的遞歸默認(rèn)設(shè)置,因此它不同于Python:defaultdict的defaultdict?,這就是如何做兩級(jí)違約。我可能會(huì)用束束但是當(dāng)我意識(shí)到我不知道該怎么做的時(shí)候,這讓我很感興趣。
查看完整描述

3 回答

?
12345678_0001

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

對(duì)于任意數(shù)量的級(jí)別:

def rec_dd():
    return defaultdict(rec_dd)>>> x = rec_dd()>>> x['a']['b']['c']['d']defaultdict(<function rec_dd at 0x7f0dcef81500>, {})>>> print json.dumps(x){"a": {"b": {"c": {"d": {}}}}}

當(dāng)然,您也可以使用lambda來(lái)完成這個(gè)任務(wù),但我發(fā)現(xiàn)lambda的可讀性較低。在任何情況下,它看起來(lái)都是這樣的:

rec_dd = lambda: defaultdict(rec_dd)


查看完整回答
反對(duì) 回復(fù) 2019-07-20
?
慕仙森

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

這里的其他答案告訴您如何創(chuàng)建一個(gè)defaultdict其中包含“無(wú)限多”defaultdict,但他們沒(méi)有解決我認(rèn)為可能是你最初的需求,那就是簡(jiǎn)單地有一個(gè)兩深度的違約。

你可能一直在尋找:

defaultdict(lambda: defaultdict(dict))

您可能更喜歡這種結(jié)構(gòu)的原因是:

  • 它比遞歸解決方案更明確,因此讀者可能更容易理解。
  • 這將啟用

    defaultdict

    不是詞典,例如:

    defaultdict(lambda: defaultdict(list))

    defaultdict(lambda: defaultdict(set))


查看完整回答
反對(duì) 回復(fù) 2019-07-20
?
江戶川亂折騰

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

類似于BrenBarn的解決方案,但不包含變量的名稱tree兩次,所以即使在對(duì)變量字典進(jìn)行更改之后,它也能工作:

tree = (lambda f: f(f))(lambda a: (lambda: defaultdict(a(a))))

然后您可以創(chuàng)建每個(gè)新的x帶著x = tree().


def版本時(shí),我們可以使用函數(shù)閉包作用域來(lái)保護(hù)數(shù)據(jù)結(jié)構(gòu)不受現(xiàn)有實(shí)例停止工作的缺陷(如果tree名字叫反彈。看起來(lái)是這樣的:

from collections import defaultdictdef tree():
    def the_tree():
        return defaultdict(the_tree)
    return the_tree()


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

添加回答

舉報(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)