我难以理解如何构建一个函数,它可以从内部列表中对列表中的列表进行操作(我想这就是您如何描述它的方式)。从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