好的,如果我们说父母总是比孩子大/因为它在他们之上/我们写:
a = [('222', 'Workroom', '111'),
('333', 'Setup Part', '222'),
('444', 'Scale', '222'),
('666', 'Workroom', ''),
('888', 'Setup Part', '777'),
('777', 'Workroom', '666'),
('555', 'Workroom', '111'),
('111', 'Workroom', '')]
for i,s in enumerate(a):
if len(s[2])==0:
a[i] =(s[0],s[1],'000')
# just to avoid int error
v = sorted(a, key=lambda x: x[0]+str(int(x[0])-int(x[2])))
print v
给出:
[('111', 'Workroom', '000'),
('222', 'Workroom', '111'),
('333', 'Setup Part', '222'),
('444', 'Scale', '222'),
('555', 'Workroom', '111'),
('666', 'Workroom', '000'),
('777', 'Workroom', '666'),
('888', 'Setup Part', '777')]
现在,为了知道级别,我们可以嵌套列表:
z = [];
for r in v:
x = r[:];
for n in range(int(r[2][0])):
x = list([x])
z.append(x)
# Result:
[('111', 'Workroom', '000'),
[('222', 'Workroom', '111')],
[[('333', 'Setup Part', '222')]],
[[('444', 'Scale', '222')]],
[('555', 'Workroom', '111')],
('666', 'Workroom', '000'),
[[[[[[('777', 'Workroom', '666')]]]]]],
[[[[[[[('888', 'Setup Part', '777')]]]]]]]]
现在,制作这个 html 很容易:
只是,将每个元素放入<td> </td>你找到的每个列表中,
也许检查长度是否为 3 找到项目
==> 关闭<td> 标签!