按嵌套值筛选python字典,返回完整项而不仅仅是值



想要过滤所有具有C表示嵌套硬件值的项,但返回原始中的密钥和密钥:值数据

SomeDict= {'al':  {'Hardware': 'K', 'speed' : '100' },
'ar2':  {'Hardware': 'C', 'speed' : '' },
'ar3':  {'Hardware': 'C', 'speed' : '' }}

筛选Magic_Desired_Result->{'ar2':{'硬件':"C","速度":"},"ar3":{"硬件":"C","速度":"}}

尝试了double for loop,但我知道这不是Python的方式,也没有返回al、ar2和ar3等键。

如何获得想要的结果

像这样的字典理解:

SomeDict= {
'al':  {'Hardware': 'K', 'speed' : '100' },
'ar2':  {'Hardware': 'C', 'speed' : '' },
'ar3':  {'Hardware': 'C', 'speed' : '' }
}
FilterMagic_Desired_Result = {k: v for k, v in SomeDict.items() if v['Hardware'] == 'C'}
print(FilterMagic_Desired_Result)

输出:

{'ar2': {'Hardware': 'C', 'speed': ''}, 'ar3': {'Hardware': 'C', 'speed': ''}}

顺便说一句,这里的"蟒蛇式"做事方式是也不带大写字母地命名变量,例如:

some_dict = {
'al':  {'Hardware': 'K', 'speed' : '100' },
'ar2':  {'Hardware': 'C', 'speed' : '' },
'ar3':  {'Hardware': 'C', 'speed' : '' }
}
filter_magic_desired_result = {k: v for k, v in some_dict.items() if v['Hardware'] == 'C'}
print(filter_magic_desired_result)

您希望在类名上使用大写字母,但不希望在变量或函数名上使用大写。

在这种情况下,字典理解能力很好;

FilteredDict = {k:v for k,v in SomeDict.items() if v['Hardware']=='C'}

最新更新