2017-02-19 4 views
-4

В Python У меня есть такой рода выражение, чтобы иметь дело с:Я не понимаю такой синтаксис, используемые словари

alg_error = self.__rec_data[seedict][scanner][CALCULATE][CALCULATE_VALUE] 

или

alg_error = self.__rec_data[seedict][scanner][CALCULATE][CALCULATE_VALUE] 
alg_comp = self.__rec_data[pers][dict1][DATA][DATA_DICT] 

Я не понимаю, это несколько словарей выражения в все, как это работает, что, если я присвою значение, например,

algo_dem_error_path_comp = self.__rec_file_data[pers][scan][DATA][DATA_ERR_PATH_COMP] = "value : 5 " 

Куда бы вы отправились?

+1

Ищите базовые материалы в словарях Python http://stackoverflow.com/questions/16333296/how-do-you-create-nested-dict-in-python – ZdaR

ответ

2

У вас есть вложенный словарь, то есть словарь, где сами предметы также являются словарями. Таким образом, каждый ключ находит соответствующий элемент в этом словаре.

foo = {"A": 1, "B": 2, "C": 3} 
bar = {"A:": 2, "B": 4, "C": 6} 

baz = {"X": foo, "Y": bar} 

print(baz["X"]["A"]) 
0

Что вы ищете, это вложенные словари. Пример:

>>> dict1 = {'hello': 'sup'} 

>>> dict2 = {} 
>>> dict2['first_thing'] = dict1 

>>> dict2 
{'first_thing': {'hello': 'sup'}} 

>>> dict2['first_thing']['hello'] 
'sup' 

>>> dict2['first_thing']['new_key'] = 'heman' 

>>> dict2 
{'first_thing': {'new_key': 'heman', 'hello': 'sup'}} 

Таким образом, не вдаваясь в подробности конкретной структуры данных, мы надеемся, что это немного облегчит ситуацию.