建议为Python内置dict添加.nestkey方法实现多层嵌套字典动态寻址
关于Python嵌套字典动态键寻址的内置方法建议
Python目前没有针对多层嵌套字典结构的动态键寻址内置方法(暂称nestkey),处理复杂嵌套字典时手动逐层赋值非常繁琐。比如可以用dic_1.nestkey(list_of_keys_A) = value替代冗长的dic_1["key_1"]["subkey_2"]["subsubkey_3"]... = value写法。
这和普通的一级字典赋值(比如dic_1["key_1"] = value_1、dic_2["key_2"] = value_2这类操作)完全不同。
虽然通常不建议使用嵌套字典结构,但在必要场景下,这种动态寻址功能会非常实用,示例代码如下:
list_values = [1, 2, 3]; ii = -1 for list_nestedkeys_i in [list_nestedkeys_A, list_nestedkeys_B, list_nestedkeys_C]: ii += 1; dic.nestkey(list_nestedkeys_i) = list_values[ii]
为此,建议给dict类添加nestkey内置方法,以下是具体实现代码:
def nestkey(self, keys, value): d = self # 指向当前嵌套字典 for key in keys[:-1]: # 遍历到倒数第二个键 if key not in d: d[key] = {} # 键不存在时创建嵌套字典 d = d[key] # 深入到下一层字典 d[keys[-1]] = value # 为最后一个键赋值
内容的提问来源于stack exchange,提问作者José Crespo Barrios
相关产品推荐
相关产品推荐

