def flatten(d, parent_key='', sep='.'):
items = []
for k, v in d.items():
new_key = parent_key + sep + k if parent_key else k # questions??`
if isinstance(v, dict):
items.extend(flatten(v, new_key, sep=sep).items())
else:
items.append((new_key, v))
return dict(items)
d = {
'a': 1,
'b': {
'c': 2,
'd': {
'e': 3
}
}
}
print(flatten(d))
# prints {'a': 1, 'b.c': 2, 'b.d.e': 3}
Это функция, которая принимает вложенный дикт и превращает его в сплющенный.
Я хочу знать, что означает new_key = parent_key + sep + k if parent_key else k
? На что указывает условие?
Не должно ли оно печатать {'.a': 1, '.b.c': 2, '.b.d.e': 3}
как new_key = '' + '.' + K (ключ)?