我有一个口述如下,以显示集团公司层次结构的关系
dict = {}
dict["A"] = ['Company A']
dict["B"] = ['Company B']
dict["C"] = ['Company C'] # This can be removed if necessary
dict["D"] = ['Company D']
dict["E"] = ['Company E']
dict["F"] = ['Company F'] # This can be removed if necessary
dict["G"] = ['Company G'] # This can be removed if necessary
现在我有了这些根级别元素(公司)之间的父子关系,例如一个公司可能控制多个公司。 密钥C是密钥A&;B.(C公司拥有A公司和B公司) 键F是键D&;E 最后,键G是C&;F
我需要创建一个新的dict,如下所示,或者创建一个如下所示的新dict。可以动态处理此父子关系并获得以下输出。如何拥有该父子关系,以便能够更新关系并更新输出
{'A': ['Company A'],
'B': ['Company B'],
'C': ['Company A', 'Company B'],
'D': ['Company D'],
'E': ['Company E'],
'F': ['Company D', 'Company E'],
'G': ['Company A', 'Company B','Company D', 'Company E'],
}
有人可以分享我可以创建这个的代码吗
假设您有另一个字典或其他结构将父项映射到其子项,您可以定义一个递归函数来获取不同键的所有“叶”。如果树较大,您可能希望使用
functools.lru_cache
来记忆和重用过去的部分结果您只需创建另一个字典,将所有父项及其子项定义到该字典中,并在当前字典上循环,如果发现有任何键与父项字典中的任何键匹配,则结果字典应继承其值
talk很便宜让我给你看一些代码
范例
相关问题 更多 >
编程相关推荐