我有一个这样的字典,是使用Python创建的。

d = {'a': ['Adam', 'Book', 4], 'b': ['Bill', 'TV', 6, 'Jill', 'Sports', 1, 'Bill', 'Computer', 5], 'c': ['Bill', 'Sports', 3], 'd': ['Quin', 'Computer', 3, 'Adam', 'Computer', 3], 'e': ['Quin', 'TV', 2, 'Quin', 'Book', 5], 'f': ['Adam', 'Computer', 7]}

我想以横树格式将其打印出来,而不是在控制台上打印出来。我已经尝试了 pretty-print ,但是当字典变长时,它变得很难阅读。

例如,使用此字典,它将返回:

a -> Book -> Adam -> 4
b -> TV -> Bill -> 6
  -> Sports -> Jill -> 1
  -> Computer -> Bill -> 5
c -> Sports -> Bill -> 3
d -> Computer -> Quin -> 3
              -> Adam -> 3
e -> TV -> Quin -> 2
    Book -> Quin -> 5
f -> Computer -> Adam -> 7

本质上, pretty-print 是由“事件”或列表中第二个位置的项目组织的,然后按名称和编号进行组织。

上面的示例输出仅是示例。我尝试使用Pretty print a tree,但无法弄清楚如何将其转换为横向格式。

最佳答案

您可以看一下ETE toolkit的代码。函数_asciiArt甚至可以生成with internal node labels树木的漂亮表示形式

from ete2 import Tree
t = Tree("(((A,B), C), D);")
print t

#               /-A
#          /---|
#     /---|     \-B
#    |    |
#----|     \-C
#    |
#     \-D

10-08 13:26
查看更多