我有一個描述層次,因爲這樣的名單:通過嵌套列表排序
[obj1, obj2, [child1, child2, [gchild1, gchild2]] onemoreobject]
其中,child1(和其他人)是obj2的孩子,而gchild1和2子2兒童
例如,這些對象的每個屬性都有像date
這樣的屬性,我想根據這些屬性對它們進行排序。在常規的名單我會是這樣的:
sorted(obj_list, key=attrgetter('date'))
在這種情況下,仍然該方法不會工作,因爲名單沒有date
屬性......即使做到了,如果它的屬性是不同的的父級,那麼等級順序將被打破。有沒有一種簡單而優雅的方式來在Python中做到這一點?
這看起來像它將是樹結構的完美數據集。 – Serdalis 2013-02-21 03:38:47
你能提供所需的輸出嗎?您是否想按字典順序排列列表,同時保持層次結構?即,[obj2,obj1,[child1,child2,[gchild1,gchild2]] onemoreobject]'將排序到[obj1,[child1,child2,[gchild1,gchild2]],obj2,onemoreobject] – dawg 2013-02-21 16:59:40
如上所述,所需的輸出將取決於名爲'date'的對象屬性。你的例子是有效的,如果日期將以這樣的方式安排,但我絕不打算根據對象名稱進行排序。所以如果'obj1.date'第二次行進而'obj2.date'第一次行進,這部分列表應該看起來像這樣: '[obj2,[child1,child2,[gchild1,gchild2]],obj1 ]' – user2016907 2013-02-22 02:01:58