Python 无法将 defaultdict 值传递给函数
Python unable to pass defaultdict values to function
我有一个复杂的代码,可以将一些值读入嵌套的 defaultdict 中。
然后有一个循环遍历字典中的键并使用它们 - 基本上将它们分配给另一个嵌套的 defaultdict。
问题是,当我想使用字典中的值并访问它们并将它们作为值传递给函数时....我得到空的 {} 或类似这样的东西:defaultdict(
我试过写字典,看看它是否真的是空的。我的部分代码;
if (not families_data[family]['cell_db']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))
真正有趣的部分是,当这个“如果”为真时,我得到以下输出:
adfull 的输出为空。
{'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category' : '', 'pinmap': '', 'output': 'CO S', 'inout': '', 'input': 'A B CI', 'rail_supply': 'VDD VSS', 'well_supply': '', 'description': ''}
如果我将 if 中的第二行更改为
print(families_data[family]['celldb'])
我得到以下输出:
defaultdict(<函数树在 0x2b45844059d8>, {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category': '', 'pinmap': '', 'output': 'CO S', 'inout': '', 'input': 'A B CI', 'rail_supply': 'VDD VSS', 'well_supply': '', 'description': ''})
为什么当输出键中有一个值 'CO S' 时,“if”甚至为真?
为什么我在尝试访问 families_data[family]['cell_db']['input'] 等任何值并将其作为参数传递给函数时得到 {}?
我到底做错了什么?
if 语句中的“cell_db”键有下划线,而 print 语句中没有。
这应该可以解决问题:
if (not families_data[family]['celldb']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))
我有一个复杂的代码,可以将一些值读入嵌套的 defaultdict 中。 然后有一个循环遍历字典中的键并使用它们 - 基本上将它们分配给另一个嵌套的 defaultdict。
问题是,当我想使用字典中的值并访问它们并将它们作为值传递给函数时....我得到空的 {} 或类似这样的东西:defaultdict(
我试过写字典,看看它是否真的是空的。我的部分代码;
if (not families_data[family]['cell_db']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))
真正有趣的部分是,当这个“如果”为真时,我得到以下输出:
adfull 的输出为空。 {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category' : '', 'pinmap': '', 'output': 'CO S', 'inout': '', 'input': 'A B CI', 'rail_supply': 'VDD VSS', 'well_supply': '', 'description': ''}
如果我将 if 中的第二行更改为
print(families_data[family]['celldb'])
我得到以下输出:
defaultdict(<函数树在 0x2b45844059d8>, {'name': 'adfullx05_b', 'family': 'adfull', 'drive_strength': 0.5, 'template': 'adfull', 'category': '', 'pinmap': '', 'output': 'CO S', 'inout': '', 'input': 'A B CI', 'rail_supply': 'VDD VSS', 'well_supply': '', 'description': ''})
为什么当输出键中有一个值 'CO S' 时,“if”甚至为真?
为什么我在尝试访问 families_data[family]['cell_db']['input'] 等任何值并将其作为参数传递给函数时得到 {}?
我到底做错了什么?
if 语句中的“cell_db”键有下划线,而 print 语句中没有。
这应该可以解决问题:
if (not families_data[family]['celldb']['output']):
print(rf"Output for {family} is empty.")
print(dict(families_data[family]['celldb']))