首页 > 编程语言 >路径刷新算法

路径刷新算法

时间:2024-01-16 23:44:07浏览次数:31  
标签:paths 路径 new current 算法 dict 刷新 path data

def find_paths_and_modify(data, target_path, new_value):
    paths = []
    stack = [([], data)]

    while stack:
        current_path, current_data = stack.pop()

        if isinstance(current_data, dict):
            for key, value in current_data.items():
                new_path = current_path + [key]
                stack.append((new_path, value))
        elif isinstance(current_data, list):
            for index, item in enumerate(current_data):
                new_path = current_path + [index]
                stack.append((new_path, item))
        else:
            paths.append(current_path)
            # Check if the current path matches the target path
            if current_path == target_path:
                current_dict = data
                for key in current_path[:-1]:
                    current_dict = current_dict[key]
                current_dict[current_path[-1]] = new_value

    return paths, data

# 假设你的字典存储在变量 'dict2' 中
dict2 = {
    "context": {
        "band": {
            "ccMap": 1,
            "ccs": [
                {
                    "bwp": {
                        "size": 50,
                        "start": 0
                    },
                    "chan": "NR_PUSCH",
                    "mod": "TYPE_64QAM",
                    "rb": {
                        "offset": 0,
                        "size": 10
                    }
                },
                {
                    "bwp": {
                        "size": 50,
                        "start": 0
                    },
                    "chan": "NR_PUSCH",
                    "mod": "TYPE_64QAM",
                    "rb": {
                        "offset": 0,
                        "size": 10
                    }
                }
            ]
        }
    }
}

target_path = ["context", "band", "ccs", 0, "bwp", "size"]  # 设置目标路径
new_value = 100  # 设置新的值

paths_list, modified_dict = find_paths_and_modify(dict2, target_path, new_value)

# 打印输出的路径
for path in paths_list:
    print(path)

# 打印修改后的字典
print(modified_dict)

标签:paths,路径,new,current,算法,dict,刷新,path,data
From: https://www.cnblogs.com/dhxuy/p/17968880

相关文章

  • 算法-二分
    1.整数二分适用于有单调性的数列和部分没有单调性的数列本质:通过一个性质把数列分成两个序列,然后找到分界点注意:每一次循环后数组区间都会变成1,即你所查到的分界点2.实数二分因为没有整除的问题,每次区间都会严格减小一半如果题目要求保留x位小数,则循环条件为r-l<1e-(x+2);......
  • m基于码率兼容打孔LDPC码ms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation)译码算法进行迭代译码,提高了......
  • m基于码率兼容打孔LDPC码ms最小和译码算法的LDPC编译码matlab误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       码率兼容打孔LDPC码BP译码算法是一种改进的LDPC译码算法,能够在不同码率下实现更好的译码性能。该算法通过在LDPC码中引入打孔操作,使得码率可以灵活地调整,同时利用BP(BeliefPropagation......
  • 吴师兄学算法day07 双指针 16. 最接近的三数之和
    题目:16. 最接近的三数之和易错点:比较的时候,要减去target在算结果我的代码:classSolution:defthreeSumClosest(self,nums:List[int],target:int)->int:nums=sorted(nums)max_res=float('inf')min_res=float('-inf')......
  • java排序算法
    Java中常用的排序算法包括以下几种:冒泡排序(BubbleSort):这是一种简单的排序算法,通过重复地遍历待排序的序列,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来。遍历序列的工作是重复地进行直到没有再需要交换,也就是说该序列已经排序完成。选择排序(SelectionSort):这种排序算法......
  • 最优订单执行算法相关Paper介绍
    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。随着量化交易、高频交易的竞争日益激烈,事实证明,交易执行显着影响量化策略的投资绩效。因此,许多从业者开始将交易执行视为一项独立的任务。本期文章分享,我们搜寻了一些用于最小化交易成本的最佳......
  • 玩玩luogu算法题——第1期
    昨天已经把所有大作业写完了,所以今天就想去做一些有趣的事情...今天做的题都不是特别难,除了最后一题(写了大概1000多行Markdown,结果能Accepted的代码居然只有十几行?!)目标:希望暑假的时候每天都能更新一点算法题的随笔出来,加油~P1000超级玛丽游戏(一个非常入门的题目,作用是用来快速......
  • Nginx转发解析长域名多路径域名
    Nginx解析短域名,例如:访问http://192.168.1.23可直接跳转到http://192.168.1.23/webroot/decisionserver{listen90;server_namelocalhost;#匹配/转到/webroot/decision上;#^(.*)$表示/后任意部分,除非和其他location匹配否则一律转向/webroot/decisio......
  • openEuler欧拉安装Jenkins并修改构建workspace路径
    一、系统优化关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxsed-ri's/SELINUX=enforcing/SELINUX=disabled/'/etc/selinux/configsetenforce0二、安装Jenkinssudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/je......
  • python获取当前执行py文件的路径
    1.os.getcwd() 只有路径,不包含py文件名path=os.getcwd()print(path)#结果:E:\pyworkspace\pycharmProjects\cdtest\oproject\Pubic 2.os.path.realpath(__file__)#包含了py文件path=os.path.realpath(__file__)print(path)#结果:E:\pyworkspace\pycharmProjects\c......