【发布时间】:2017-05-15 13:13:10
【问题描述】:
像父/子层次结构一样对“a”列表进行排序。其中第一项是 ID,第二项是描述,第三项是父 ID。
a = [('222', 'Workroom', '111'),
('333', 'Setup Part', '222'),
('444', 'Scale', '222'),
('666', 'Workroom', '000'),
('888', 'Setup Part', '777'),
('777', 'Workroom', '666'),
('555', 'Workroom', '111'),
('111', 'Workroom', '000'),
('120', 'Workroom', '000'),
('100', 'Workroom', '000'),
('101', 'Workroom', '000'),
('110', 'Workroom', '101'),
('130', 'Workroom', '120')]
期望的输出
a = [('100', 'Workroom', '000'),
('101', 'Workroom', '000'),
('110', 'Workroom', '101'),
('111', 'Workroom', '000'),
('555', 'Workroom', '111'),
('222', 'Workroom', '111'),
('333', 'Setup Part', '222'),
('444', 'Scale', '222'),
('120', 'Workroom', '000'),
('130', 'Workroom', '120'),
('666', 'Workroom', '000'),
('777', 'Workroom', '666'),
('888', 'Setup Part', '777'),]
【问题讨论】:
-
期望的输出是什么?深度优先?广度优先?完全不同的东西?查看 Python 文档中的 Sorting How To。
-
a = [('100', '工作室', '000'), ('101', '工作室', '000'), ('111', '工作室', '000 '), ('555', '工作室', '111'), ('222', '工作室', '111'), ('333', '设置部分', '222'), ('444' , '比例', '222'), ('110', '工作室', '101'), ('120', '工作室', '000'), ('130', '工作室', '120' ), ('666', 'Workroom', '000'), ('777', 'Workroom', '666'), ('888', 'Setup Part', '777'),]
-
是否应该
('110', 'Workroom', '101'),不直接跟在('101', 'Workroom', '000'),之后并在您的可视化中缩进一级? -
看看:stackoverflow.com/questions/34964878/…。也许是重复的?
-
是的,先生,对不起。