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

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

如何確定字典中的哪個鍵有子字典?

如何確定字典中的哪個鍵有子字典?

喵喵時光機 2022-07-19 15:29:24
給定 a uuid,我想查找并返回包含和與之關聯(lián)的數(shù)據(jù)的字典。uuid我寫了一個測試來描述預期的結果。def test_search_for_cat():    cat_id = "a2c23d62-9d06-44f4-92dc-b28875173a54"    cat_data = {        "senior-developer": {            "name": "senior-developer",            "displayName": "Senior Developer",            "uuid": "418714f8-b3bd-4ba5-b4a7-4f87717419f4",            "mid-level-developer": {                "name": "mid-level-developer",                "displayName": "Mid-level Developer",                "uuid": "a2c23d62-9d06-44f4-92dc-b28875173a54",            },        }    }    retreived_cat = search_for_cat(cat_id, cat_data)    assert retreived_cat == {        "name": "mid-level-developer",        "displayName": "Mid-level Developer",        "uuid": "a2c23d62-9d06-44f4-92dc-b28875173a54",    }我已經(jīng)開始編寫一個函數(shù)來搜索正確的類別。def search_for_cat(cat_id, cat_data):    if isinstance(cat_data, dict):        for slug, data in cat_data.items():            if data["uuid"] == cat_id:                return data但我在遞歸部分苦苦掙扎。當uuid與給定的不匹配時cat_id,如何找到帶有 dict 的鍵以傳遞給遞歸函數(shù)?
查看完整描述

3 回答

?
SMILET

TA貢獻1796條經(jīng)驗 獲得超4個贊

你可以試試這個。如果對象是dictisinstance(object,dict)則返回。我們必須找到作為值映射到鍵的字典。首先使用 . 檢查給定字典是否具有as 值。如果不是,則遍歷值,如果該值是字典,則再次重復上述過程。如果存在,則返回我們正在迭代的當前字典。Truecat_idcat_iddict.values()cat_id


In [90]: cat_data

Out[90]:

{'senior-developer': {'name': 'senior-developer',

  'displayName': 'Senior Developer',

  'uuid': '418714f8-b3bd-4ba5-b4a7-4f87717419f4',

  'mid-level-developer': {'name': 'mid-level-developer',

   'displayName': 'Mid-level Developer',

   'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}}}


In [91]: cat_id = "a2c23d62-9d06-44f4-92dc-b28875173a54"


In [94]: def recur(_dict,val):

    ...:     if val in _dict.values():

    ...:         return _dict

    ...:     else:

    ...:         for v in _dict.values():

    ...:             if isinstance(v,dict):

    ...:                 return recur(v,val)


In [95]: recur(cat_data,cat_id)

Out[95]:

{'name': 'mid-level-developer',

 'displayName': 'Mid-level Developer',

 'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}


In [96]: retrived_cat=recur(cat_data,cat_id)


In [97]: retrived_cat

Out[97]:

{'name': 'mid-level-developer',

 'displayName': 'Mid-level Developer',

 'uuid': 'a2c23d62-9d06-44f4-92dc-b28875173a54'}


查看完整回答
反對 回復 2022-07-19
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

isinstance(myObject,dict).

例如:

isinstance({},dict)

返回真,而

isinstance([],dict)

返回 False


查看完整回答
反對 回復 2022-07-19
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

if is_instance(slug, _dict):
    search_for_cat_id(cat_id, _dict[slug])

只需在 return 語句下面添加這個


查看完整回答
反對 回復 2022-07-19
  • 3 回答
  • 0 關注
  • 89 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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