我有一个代表数据结构遍历的字符串列表。我想将链接列表遍历折叠成更紧凑的表示。为此,我想计算相邻next
和prev
链接的数量并将它们折叠成一个整数。
以下是我想做的转换示例:
['modules'] --> ['modules']
['modules', 'next'] --> ['modules', 1]
['modules', 'prev'] --> ['modules', -1]
['modules', 'next', 'next', 'next', 'txt'] --> ['modules', 3, 'txt']
['modules', 'next', 'prev', 'next', 'txt'] --> ['modules', 1, 'txt']
['super_blocks', 'next', 's_inodes', 'next'] --> ['super_blocks', 1, 's_inodes', 1]
每个next
链接计为+1,每个链接prev
为-1。相邻next
的 s 和prev
s 相互抵消。他们可以按任何顺序出现。
我有一个可行的解决方案,但我正在努力寻找一个令人满意的优雅和 Pythonic 的解决方案。