У меня есть следующий словарь, в котором keys
- родительские классы, а values
- список дочерних классов, которые наследуются от них.
{
"Animal":
["Dog"]
,
"Dog":
["Labrador"]
,
"Vehicle":
["PetrolCar",
"DieselCar"]
,
"DieselCar":
["Hyundai"]
,
"PetrolCar":
["Hyundai",
"Ford"]
}
Как видите, некоторые родительские классы также являются потомками другого родительского класса (глубокое наследование), т.е. Animal -> Dog -> Labrador
Как мне отформатировать это так, чтобы выходные данные представляли уровни наследования, что-то вроде этого:
{
"Animal": {
"Dog": {
"Labrador": []
}
},
"Vehicle": {
"PetrolCar": {
"Hyundai": [],
"Ford": []
},
"DieselCar": {
"Hyundai": []
}
}
}
Я также хочу иметь возможность расширить предоставленный набор данных, добавив больше родителей или детей. Например: добавление ElectricCar
в качестве дочернего элемента Vehicle
и Tesla
в качестве дочернего элемента ElectricCar
. И добавив Cat
как дочерний элемент Animal
, без собственных дочерних элементов.
Введите:
{
"Animal":
["Dog",
"Cat"]
,
"Dog":
["Labrador"]
,
"Vehicle":
["PetrolCar",
"DieselCar",
"ElectricCar"]
,
"DieselCar":
["Hyundai"]
,
"PetrolCar":
["Hyundai",
"Ford"]
,
"ElectricCar":
["Tesla"]
}
Выход:
{
"Animal": {
"Dog": {
"Labrador": []
},
"Cat": []
},
"Vehicle": {
"PetrolCar": {
"Hyundai": [],
"Ford": []
},
"DieselCar": {
"Hyundai": []
},
"ElectricCar": {
"Tesla": []
}
}
}