所以我有一个像这样的元组列表:
[
('Worksheet',),
('1a', 'Calculated'),
('None', 'None', 'None', 'None', 'None'),
('1b', 'General'),
('1b', 'General', 'Basic'),
('1b', 'General', 'Basic', 'Data'),
('1b', 'General', 'Basic', 'Data', 'Line 1'),
('1b', 'General', 'Basic', 'Data', 'Line 2'),
('None', 'None', 'None', 'None', 'None'),
('1c', 'General'),
('1c', 'General', 'Basic'),
('1c', 'General', 'Basic', 'Data'),
('None', 'None', 'None', 'None', 'None'),
('2', 'Active'),
('2', 'Active', 'Passive'),
('None', 'None', 'None', 'None', 'None'),
...
]
每个元组的长度为 1-5。我需要递归地减少列表以结束:
[
('Worksheet',),
('1a', 'Calculated'),
('None', 'None', 'None', 'None', 'None'),
('1b', 'General', 'Basic', 'Data', 'Line 1'),
('1b', 'General', 'Basic', 'Data', 'Line 2'),
('None', 'None', 'None', 'None', 'None'),
('1c', 'General', 'Basic', 'Data'),
('None', 'None', 'None', 'None', 'None'),
('2', 'Active', 'Passive'),
('None', 'None', 'None', 'None', 'None'),
...
]
基本上,如果下一行与上一行 +1 中的所有内容匹配,则将其删除到具有相同层次结构的元组的最大长度。
因此,如我的示例中所示1c
,元组中的第一项是 3 行,因此它被减少到最长。