我有一個復(fù)雜的代碼,它將一些值讀取到嵌套的 defaultdict 中。然后有一個循環(huán)遍歷字典中的鍵并使用它們 - 基本上將它們分配給另一個嵌套的默認(rèn)字典。問題是,當(dāng)我想使用字典中的值并訪問它們并將它們作為值傳遞給函數(shù)時...我得到空 {} 或類似的內(nèi)容:defaultdict(<function tree at 0x2aff774309d8>我試圖寫這個字典,這樣我就可以看看它是否真的是空的。我的代碼的一部分;if (not families_data[family]['cell_db']['output']): print(rf"Output for {family} is empty.") print(dict(families_data[family]['celldb']))真正有趣的部分是,當(dāng)這個“if”為真時,我會得到以下輸出:adfull 的輸出為空。{'名稱':'adfullx05_b','家庭':'adfull','drive_strength':0.5,'模板':'adfull','類別':'','pinmap':'','輸出':' CO S', 'inout': '', '輸入': 'AB CI', 'rail_supply': 'VDD VSS', 'well_supply': '', '描述': ''}如果我將 if 中的第二行更改為 print(families_data[family]['celldb'])我得到以下輸出:defaultdict(<位于 0x2b45844059d8 的函數(shù)樹>, {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category': '', 'pinmap' : '', '輸出': 'CO S', '輸入輸出': '', '輸入': 'AB CI', 'rail_supply': 'VDD VSS', 'well_supply': '', '描述': ' '})當(dāng)輸出鍵中有值“CO S”時,為什么“if”甚至為真?當(dāng)我嘗試訪問諸如 family_data[family]['cell_db']['input'] 之類的任何值并將其作為參數(shù)傳遞給函數(shù)時,為什么會收到 {}?我到底做錯了什么?
1 回答

喵喵時光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗 獲得超7個贊
if 語句中的“cell_db”鍵有下劃線,而 print 語句中沒有。
這應(yīng)該可以修復(fù)它:
if (not families_data[family]['celldb']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))
添加回答
舉報
0/150
提交
取消