You need to enable JavaScript to run this app. 如何通过PyQt对象存储的可变长度键列表向现有字典迭代赋值
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PyQt对象存储的可变长度键列表向现有字典迭代赋值

实现任意长度键列表的嵌套字典迭代赋值

你可以通过逐层遍历键列表定位到嵌套字典的最后一级,再完成赋值,无需手动适配不同长度的键列表:

for obj in objects_list:
    # 获取当前对象存储的键列表
    keys = obj.property('keys')
    # 初始化当前层级为顶层字典
    current_level = di_end
    # 遍历除最后一个键外的所有键,逐层进入嵌套层级
    for key in keys[:-1]:
        current_level = current_level[key]
    # 对最后一个键赋值
    current_level[keys[-1]] = obj.value

注意事项

  • 上述代码的前置条件和你原有手动赋值逻辑一致:di_end中所有键列表对应的前置层级字典已经提前创建完成,不会出现KeyError
  • 如果存在前置层级可能未创建的场景,可以将层级遍历代码替换为current_level = current_level.setdefault(key, {}),会自动为不存在的键创建空字典作为值
  • 原代码中a.property(['keys'])存在参数错误,PyQt的property()方法要求传入属性名字符串,正确写法为a.property('keys'),上述代码已修正该问题

内容的提问来源于stack exchange,提问作者Vin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 13:45:03