-1
的字典產量
假設我們有這樣的字典,我需要通過其分行走,併產生在文件中找到的一切迭代使用字典
a={'files': {'file root':'some root path', 'other file': 'other path'},
'directories':{'directory1':{'files':{'file1':'some path'},
'directories':{'directory2':{'files':{},
'directories': {}}}},
'folder1':{'files':{},
'directories':{'folder2': {'files': {},
'directories': {}},
'archive1':{'files': {'empty':None},
'directories':{}}}}} }
我的實現看起來像這樣
def walk_directory_files(directory):
directories = dict.__getitem__(directory, 'directories')
files = dict.__getitem__(directory, 'files')
for f in files:
yield f
for k,d in dict.items(directories):
walk_directory_files(d)
def walk_files(D):
return walk_directory_files(D)
# now lets try it
list(walk_files(a))
>> ['other file', 'file root']
我我不知道爲什麼循環內的walk_directory_files沒有被調用!
你想實現什麼?請描述更詳細的問題。 – dhh
爲什麼'dict .__ getitem __()'調用而不是僅僅使用'get()',爲什麼額外的函數'walk_files()'? – Anthon
是的,你是對的,我複製我的代碼,因爲它是。在我的實現中,由於某種原因,字典a受到保護。所以我必須使用__getitem__。 我知道它是一個愚蠢的保護層,但爲了避免直接覆蓋密鑰 – Cobry