我難以理解如何構建一個函數,它可以從內部列表中對列表中的列表進行操作(我想這就是您如何描述它的方式)。從Python中的列表中構建函數列表
我試圖動態打開列表像
res = SomeDjangoQuerySet
x = ['neighborhood', ['city', ['metro', 'metro']]]
到:
getattr(getattr(getattr(getattr(res, 'neighborhood'), 'city'), 'metro'), 'metro')
又名:
getattr(getattr(getattr(getattr(res, x[0]), x[1][0]), x[1][1][0]), x[1][1][1])
基本上,第一個值將始終是一個字符串,第二個值將是一個字符串或一個列表。每個列表將遵循此模式(字符串,字符串或列表)。列表內的列表深度不確定。 getattr()的最裏面的第一個值將是一個外部變量(在這種情況下爲'res')。有什麼建議?
遞歸肯定是關鍵。這確實有效,但我發現這有點難以遵循,我最終想出了另一種方法(但謝謝你的回覆都是一樣的!) – alukach 2011-12-22 02:02:23
經過第二次審視之後,這絕對會更好。我在這裏學到了一些很酷的東西(hasattr()和reduce())。謝謝。 – alukach 2011-12-22 21:41:28