假設我有一個項目符號列表如下:如何處理嵌套列表?
* list item 1
* list item 2 (a parent)
** list item 3 (a child of list item 2)
** list item 4 (a child of list item 2 as well)
*** list item 5 (a child of list item 4 and a grand-child of list item 2)
* list item 6
我想解析到一個嵌套列表或其他一些數據結構,這使得元素之間的父子關係明確的(而不是依靠他們的內容和相對位置)。例如,這裏是一個包含項目及其子列表(等)元組的列表:
編輯:希望,更正確的列表例如,在列表中的每個元素是一個包含一個元組:子彈的文本和兒童(如果適用)列表(以相同的形式)。
[('list item 1',), ('list item 2', [('list item 3',), ('list item 4', [('list item 5',)])] ('list item 6',)]
[('list item 1',),
('list item 2', [('list item 3',), ('list item 4', [('list item 5',)])]),
('list item 6',)]
我試圖用普通Python和一些實驗用Pyparsing要做到這一點,但我不會取得進展。我留下了兩個主要問題:
- 我需要採取什麼策略來完成這項工作?我知道遞歸是解決方案的一部分,但我很難在這個和斐波那契序列之間建立連接。
- 我確定我不是第一個做這件事的人,但我不知道這個問題的術語,以便在這個主題上進行有效的搜索。有什麼問題與此有關,以便我可以更多地瞭解解決這些問題的一般情況?
我認爲,如果能在這裏發表您的嘗試,人們也許能更好地幫助您! – Lazer 2010-06-06 03:43:47
您是否嘗試解析組織模式文件?也許你可以從orgnode中獲取靈感,並觀察他是如何完成解析的。 http://members.optusnet.com.au/~charles57/GTD/orgnode.html – pygabriel 2010-06-06 07:57:12
@Lazer:我很抱歉,但我並沒有真正有用的樣本。在我的挫折中,我沒有檢查版本控制,我的嘗試還剩下什麼沒有運行。 = \ @pygabriel:我不是想解析org-mode,但是感謝你的鏈接。我一定會花一些時間回顧一下。它可能證明是鼓舞人心的。如果它很有價值,我想要做的是製作和使用一個超級簡單的清單格式。 – ddbeck 2010-06-07 00:56:13