2016-02-24 2 views
-1

Есть ли способ создать словарь в словаре? Примером может служить словарь городов в штате, улицах в этом городе и, наконец, номера домов на этой улице? Я создаю программу построения конфигурации схемы, в которой я запрограммировал наши местоположения IDF и передачу в этом IDF. Затем я использую этот словарь для создания элементов списка для MenuBox в Tkinter. Моя цель состоит в том, чтобы уметь связывать такие вещи, как IP-адрес, порты Uplink и местоположения стойки, чтобы эта передача была скрыта для пользователя. Способ, которым я сейчас настроен, заключается в том, что я просто добавляю всю эту информацию в конец строки, которая представляет шестерню, а затем используйте string.split(), чтобы вывести информацию в соответствующие переменные. Проблема в том, что все видно пользователю, и это выглядит беспорядочно. Вот пример того, как я хотел бы установить егоПод-словарь Python/список в словаре

dict = {'Toledo': ['Main': ['1234', '4321'], 'First st': ['312', '412', '1234'], 'Second st': ['1243, '3213', 4123']], 
    'Cleveland': ['Third st': ['1234', '593], 'Front st': ['321', '467', '12340']], 
    'Cincinnati': ['Bishop': ['5901', '1234'], 'Wells': ['1234', '1234', '8842]]} 
strAddress = tk.StringVar() 
strStreet = tk.StringVar() 
optCity = tk.OptionMenu(master, strAddress, *dict.keys()) 
entCust = tk.Entry(master, textvariable=strStreet) 
print(strAddress.get(strStreet.get()[1] + ' ' + strStreet.get() + ', ' + strAddress.get()) 

Это распечатать «1234 Main, Толедо», если пользователь выбрал Толедо из меню опций и напечатал Main в поле ввода. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, или если мой код неправильный, я очень новичок в python.

+0

Вы используете '['Main': ...]' вместо '{'Main': ...}' для чего-то. – zondo

ответ

1

Да, это возможно.

data = { 
    "Toledo": { 
     "Main": [12, 23] 
    }, 
    "Cleveland": { 
     "Third st": ['1234', '593'] 
    } 
} 

является примером. Вы также можете создать его так:

data = dict() 
data["Toledo"] = { 
    "Main": [12, 23] 
} 
data["Cleveland"] = { 
    "Third st": ['1234', '593'] 
} 

NB. Не используйте dict в качестве имени переменной. dict - зарезервированное ключевое слово для встроенного типа словаря.

0

Неправильно то, что вы пытались создать список вместо dict (вместо этого использовали [] of {} для вторичного dict). Вы можете сделать это, например:

states = {'usa': {'GA': 'Atlanta'}, 'Canada': {'Ontario': 'Toronto'}}

Смежные вопросы