#python #dictionary #list-comprehension
Вопрос:
Приведенный ниже код отлично подходит для сравнения этих двух типов вложенных словарей. Можно ли записать это в понимание списка? или любым другим способом, который легче понять
dict1 = {
'Texture': {'actual': 1.0 , 'simulated': 3},
'Detector': {'SumAmp': 1.0},
'color': {'blue': 0.0001},
'Compton': {'Amplitude': 10000.0}}
dict2 = {
"Color": {
"Red": { "range": (-1, 1),
},
"Green": {
"range": (0, 0.1),
},
"Blue": {
"range": (-0.01, 0.001),
},
},
"Texture": {
"actual": {"range": (4, 3),
},
"simulated": {"range": (-2, 2),
},
"abstract": {"range": (20, 50),
},
"invented_texture": { "range": (-6, 6),
},
},
``` L = []
# Check to see if dict1 keys are similar with dict2
for k, v in dict1.items():
for k2, v2 in dict2.items():
if k == k2:
for k4, v4 in v.items():
for k3, v3 in v2.items():
if k4 == k3:
L.append(v3["range"])
Ответ №1:
Мы сделаем
[dict2[key11][key12]['range']
for key11, value11 in dict1.items()
for key12 in value11
if key11 in dict2 and key12 in dict2[key11]]
#[(4, 3), (-2, 2)]