私のような辞書を入れ子にしている:設定値
tdict = {folder': {'file0.txt': 222, 'subfolder': {'file1.txt': 333}}, 'file00.txt': 111}
、それは既存の辞書を投げると、元のための追加反復するためにどのように深い
を行くことができます。リストで説明する新しいアイテム'file2'
、:
path_list = ['folder', 'subfolder', 'file2']
私のような辞書を入れ子にしている:設定値
tdict = {folder': {'file0.txt': 222, 'subfolder': {'file1.txt': 333}}, 'file00.txt': 111}
、それは既存の辞書を投げると、元のための追加反復するためにどのように深い
を行くことができます。リストで説明する新しいアイテム'file2'
、:
path_list = ['folder', 'subfolder', 'file2']
value
がNone
ではありませんが、そうでない場合は、新しいディレクトリを追加する場合、この関数は、ファイルを追加します。
def add_path(parent, path, value=None):
end = len(path) - 1
for index, component in enumerate(path):
if index < end or value is None:
parent = parent.setdefault(component, {})
else:
parent[component] = value
私はあなたが辞書の構造を維持したいと仮定します。
currItem = tdict
for item in path_list:
if item not in currItem:
currItem[item] = value
else:
currItem = currItem[item]
あなたがvalue
変数に置くために何を決定する必要がありますあなたの入力リスト「構文」を定義する方法に応じて:だから、何がやりたいことリストを反復です。