リスト内でリスト内のリストに作用する関数をどのように構築するのが難しいですか? 、基本的には、最初の値は常に文字列となりますPythonでリスト内のリストから関数を構築する
getattr(getattr(getattr(getattr(res, x[0]), x[1][0]), x[1][1][0]), x[1][1][1])
:
getattr(getattr(getattr(getattr(res, 'neighborhood'), 'city'), 'metro'), 'metro')
AKA:
は私が動的に
res = SomeDjangoQuerySet
x = ['neighborhood', ['city', ['metro', 'metro']]]
のようなリストをオンにしようとしています2番目の値は文字列またはリストのいずれかになります。各リストはこのパターン(文字列、文字列ORリスト)に従います。リスト内のリストの深さは不確定です。 getattr()の最も内側の最初の値は外部変数(この場合は 'res')になります。何かアドバイス?
ここでの再帰は間違いなく重要です。これはうまくいきますが、私はそれに従うのが少し難しいと感じました。私は別の方法を思いついてしまいました。(しかし、あなたの返信には全く同じことがありました!) – alukach
もう一度撮影した後、これは間違いありません。ここで学んだクールなものがあります(hasattr()とreduce())。ありがとう。 – alukach