我使用Python字典(product_dict)来表示产品及其所有子部分的层次结构。dict的键是unique id(UUID),值是类对象,包含关于这些部分的所有信息,包括:part.name # A string, containing the actual name of a component
part.idCode # UUID of component
part.parent # UUID of parent component
part.children # List of UUIDs of child components
part.tier # An integer that specifies its tier/level within the hierarchy
现在为了以有序的方式输出数据,我希望按层次和字母顺序对部分进行排序。对于使用树结构的分层排序,我发现这个问题的答案对于打印来说非常有用:Sorting data hierarchically。对于这个示例,为了使用我的数据结构,我做了一些小小的修改:
^{pr2}$
考虑到我的产品是一架飞机,现在的输出如下(实际订单不同):Aircraft
Systems
Subsystem 2
Subsystem 1
Subsubsystem 1.1
Engines
Airframe
Section 2
Section 1
Section 4
Section 3
但是,由于我在这个阶段对Python的理解有限,我很难将字母排序添加到这个例程中(基于零件名称字符串)。我知道树是如何建立起来的,但我不掌握打印程序,因此无法判断在哪里添加字母排序例程。在
在给定的示例中,我想要的输出应该是:Aircraft
Airframe
Section 1
Section 2
Section 3
Section 4
Engines
Systems
Subsystem 1
Subsubsystem 1.1
Subsystem 2
非常感谢任何帮助。我不坚持上面给出的分层排序方法,所以我对完全不同的方法持开放态度。在