想要过滤所有具有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'}