def solution(dict, output, ini):
if (dict == None):
return None
else:
for key in dict:
if str(type(dict[key])) != str(type({})):
print(key)
output[ini + key] = dict[key]
else:
return solution(dict[key], output, ini + key + '.')
return output
a = {
'Key1': '1',
'Key2': {
'a': '2',
'b': '3',
'c': {
'd': '3',
'e': '1'
}
}
}
print(solution(a, {}, ""))
Здравствуйте, я пытаюсь сделать функцию, которая выравнивает вложенный словарь.Почему этот вывод каждый раз возвращает разное значение?
Например, необходимо напечатать:
{'Key2.b': '3', 'Key1': '1', 'Key2.c.d': '3', 'Key2.a': '2', 'Key2.c.e': '1'}
Но сейчас код случайным образом возвращает мне правильный ответ, но из диапазона 0-5, таких как
{'Key2.b': '3', 'Key1': '1', 'Key2.c.d': '3', 'Key2.a': '2'},
{'Key2.b': '3', 'Key2.c.d': '3'}
я узнал, что если я избавлюсь от «return» в своем заявлении else, это сработает, но я не уверен, почему это так? Может кто-нибудь мне помочь?