为了账号安全,请及时绑定邮箱和手机立即绑定

Python 无法将 defaultdict 值传递给函数

Python 无法将 defaultdict 值传递给函数

蓝山帝景 2023-08-15 16:41:56
我有一个复杂的代码,它将一些值读取到嵌套的 defaultdict 中。然后有一个循环遍历字典中的键并使用它们 - 基本上将它们分配给另一个嵌套的默认字典。问题是,当我想使用字典中的值并访问它们并将它们作为值传递给函数时...我得到空 {} 或类似的内容: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']))真正有趣的部分是,当这个“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 的函数树>, {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category': '', 'pinmap' : '', '输出': 'CO S', '输入输出': '', '输入': 'AB CI', 'rail_supply': 'VDD VSS', 'well_supply': '', '描述': ' '})当输出键中有值“CO S”时,为什么“if”甚至为真?当我尝试访问诸如 family_data[family]['cell_db']['input'] 之类的任何值并将其作为参数传递给函数时,为什么会收到 {}?我到底做错了什么?
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

if 语句中的“cell_db”键有下划线,而 print 语句中没有。


这应该可以修复它:


if (not families_data[family]['celldb']['output']):

    print(rf"Output for {family} is  empty.")

    print(dict(families_data[family]['celldb']))


查看完整回答
反对 回复 2023-08-15
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信