は、私のような構造のpythonオブジェクトを持っていますそのリストがツリーを通る有効なパスを記述しているかどうかを判断したい。これは私の要件を満たしていませんがPython動的オブジェクトクエリ
tree[arr_1[0]][arr_1[1]] # Returns correct object
tree[arr_2[0]][arr_2[1]] # Returns error
tree[arr_3[0]][arr_3[1]][arr_3[2]] # Returns correct object
:
現在、私はそうのようなケースの答えによって、ケースを達成することができます。私は多くの場合、任意のリスト内のキーのツリーを検索する1つの関数を好むでしょう。
次の機能はほとんど私が望むものですが、さまざまな長さのリストを処理しません。
def is_valid(tree, arr):
obj = tree[arr[0]][arr[1]]
if len(obj) > 0:
return(obj)
else:
return("No obj")
現在、この機能出力は
is_valid(tree, arr_1) # Returns the correct result
is_valid(tree, arr_2) # Returns an error
is_valid(tree, arr_3) # Returns the same result as arr_1, which is incorrect
誰も私がarr
引数の長さにdynamicically反応するように、この機能を拡大を支援することはできますか?
ありがとうございます!
まずあなたの "dictsのセットは、本当に「STRのリスト」です。次にis_validのキーをループするために 'for key in arr:'を実行してみましょう。第三に、これがhwかユースケースかどうかは分かりませんが、可能であれば、実際のツリーを作成して検索することができます。 – postelrich