Так что я эту функцию:iteritems только дает один ключ
cached_list = []
def build_dependency_list(list, tree, cache=True):
global cached_list
if not tree:
return
if cache:
cached_list = list
pp = pprint.PrettyPrinter(indent=4)
pprint.pprint(tree)
for key, value in tree.iteritems():
pprint.pprint(key)
if key not in list:
list.append(key)
return build_dependency_list(list, value, cache)
Но когда я пытаюсь запустить его с некоторыми dictionnary я получаю это
{'drawee': {'fbcore': {}, 'support-v4': {}},
'fbcore': {},
'imagepipeline': {'bolts-tasks': {'junit': {'hamcrest-core': {}}},
'fbcore': {},
'imagepipeline-base': {'bolts-tasks': {'junit': {'hamcrest-core': {}}},
'fbcore': {},
'library': {},
'support-v4': {}},
'library': {},
'support-v4': {}}}
'fbcore'
Любая идея, почему fbcode
является единственным быть итерацию?
потому что функция возвращается после первой итерации – noteness
Пожалуйста, не используйте имя 'list' как переменную в коде; вы маскируете встроенный тип. –