微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用键遍历python字典的BFS

如何解决使用键遍历python字典的BFS

目前我已经对字典进行了 bfs 遍历,如下所示:

def bfs_traversal(dictionary):
dictionary_array = [dictionary]
for sub_dictionary in dictionary_array:
    if type(sub_dictionary) is dict:
        for key,value in sub_dictionary.items():
            print("key=",key)
            print("value",value)
            if type(value) is dict:
                dictionary_array.append(value)

我想在 bfs_traversal 函数中更改字典副本的值,这是一个概念:

def bfs_traversal(dictionary):
dictionary_array = [dictionary]
dictionary_copy = dictionary.copy()
for sub_dictionary in dictionary_array:
    if type(sub_dictionary) is dict:
        for key,value in sub_dictionary.items():
            #Somehow access dictionary_copy by using keys - in order to change value at this given key
            #Like: dictionary_copy['1-1']['C-2']['I-3']
            print("key=",value)
            if type(value) is dict:
                dictionary_array.append(value)
return dictionary_copy

所以结果是这样的:

原文:

{'1-1': {'A-2': "first inside 1-1",'B-2': "second inside 1-1",'C-2': {'I-3': "first inside C-2",'II-3': 'second inside C-2'}},'2-1': "second"}

从 bfs_traversal 返回的副本:

{'1-1': {'A-2': "first inside 1-1 but changed",'C-2': {'I-3': "first inside C-2 but changed",'2-1': "second"}

你知道我该怎么做吗? 理想的情况是访问字典,如:

dictionary_copy['1-1']['C-2']['I-3']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。