我有一個表示數據結構遍歷的字符串列表。我想將鏈接列表遍歷摺疊成更緊湊的表示形式。爲此,我想計算相鄰的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解決方案。
[ '模塊', '下', '分組', 'TXT'] - > FAIL。 – unbeli 2013-03-21 22:08:30
@unbeli:我認爲這是一個強大的。這個角落案件的要求不清楚。 – NPE 2013-03-21 22:09:39
我認爲這很清楚,next/prev應該以整數形式出現。對於那種情況和你的代碼,他們不會。 – unbeli 2013-03-21 22:10:37