Словари - это изменяемый неупорядоченный тип данных
В модуле доступны упорядоченные объекты, внешне идентичные словарям .
Словарь (ассоциативный массив, хеш-таблица):
ключ: значение
Пример словаря:
london = {'name': 'London1', 'location': 'London Str', 'vendor': 'Cisco', 'model': '4451', 'ios': '15.4'}
Можно записывать и так:
london = { 'id': 1, 'name':'London', 'it_vlan':320, 'user_vlan':1010, 'mngmt_vlan':99, 'to_name': None, 'to_id': None, 'port':'G1/0/11' }
Для того, чтобы получить значение из словаря, надо обратиться по ключу, таким же образом, как это было в списках, только вместо номера будет использоваться ключ:
In [1]: london = {'name': 'London1', 'location': 'London Str'} In [2]: london['name'] Out[2]: 'London1' In [3]: london['location'] Out[3]: 'London Str'
Аналогичным образом можно добавить новую пару ключ:значение:
In [4]: london['vendor'] = 'Cisco' In [5]: print(london) {'vendor': 'Cisco', 'name': 'London1', 'location': 'London Str'}
В словаре в качестве значения можно использовать словарь:
london_co = { 'r1' : { 'hostname': 'london_r1', 'location': '21 New Globe Walk', 'vendor': 'Cisco', 'model': '4451', 'ios': '15.4', 'ip': '10.255.0.1' }, 'r2' : { 'hostname': 'london_r2', 'location': '21 New Globe Walk', 'vendor': 'Cisco', 'model': '4451', 'ios': '15.4', 'ip': '10.255.0.2' }, 'sw1' : { 'hostname': 'london_sw1', 'location': '21 New Globe Walk', 'vendor': 'Cisco', 'model': '3850', 'ios': '3.6.XE', 'ip': '10.255.0.101' } }
Получить значения из вложенного словаря можно так:
In [7]: london_co['r1']['ios'] Out[7]: '15.4' In [8]: london_co['r1']['model'] Out[8]: '4451' In [9]: london_co['sw1']['ip'] Out[9]: '10.255.0.101'