【发布时间】:2019-08-15 05:00:51
【问题描述】:
我有以下字典,其中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": []
}
}
}
【问题讨论】:
-
你可以从你的初始字典构建一个图表,然后通过孩子们的方式进行 DFS,以这种方式构建最终的字典
标签: python python-2.7 dictionary nested