Предложение метода вложенного dict multikey в PythonPython

Программы на Python
Anonymous
Предложение метода вложенного dict multikey в Python

Сообщение Anonymous »

По-видимому, не существует встроенного метода dict (назовем его .nestkey) для динамической адресации ключей в многовложенных структурах dict. это может быть трудоемким при работе со сложными структурами dict,
например, dic_1.nestkey(list_of_keys_A) = value
вместо того, чтобы вручную выполнять dic_1["key_1"] ["subkey_2"]["subsubkey_3"].. = значение.
не следует путать с назначением уровня 1: 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]
# endfor

для этой цели я предлагаю реализовать .nestkey как встроенный метод dict. вот как это можно выразить в формате метода:
def nestkey(self, keys, value):
d = self # the nested dict
for key in keys[:-1]: # traverse to the second last key
if key not in d:
d[key] = {} # create a nested dict if key doesn't exist
# endif
d = d[key] # move deeper into the dict
# endfor
d[keys[-1]] = value # set the value for the final key
# enddef


Подробнее здесь: https://stackoverflow.com/questions/790 ... suggestion

Вернуться в «Python»