Основы программирования на Python
Одним из сложных типов данных (наряду со строками и списками) в языке программирования Python являются словари. Словарь - это изменяемый (как список) неупорядоченный (в отличие от строк и списков) набор пар "ключ:значение".
Чтобы представление о словаре стало более понятным, можно провести аналогию с обычным словарем, например, англо-русским. На каждое английское слово в таком словаре есть русское слово-перевод: cat – кошка, dog – собака, table – стол и т.д. Если англо-русский словарь описывать с помощью Python, то английские слова будут ключами, а русские — их значениями:
{'cat':'кошка', 'dog':'собака', 'bird':'птица', 'mouse':'мышь'}
Если создать словарь в интерпретаторе Python, то после нажатия Enter можно наблюдать, что последовательность вывода пар "ключ:значение" не совпадает с тем, как было введено:
>>> {'cat':'кошка', 'dog':'собака', 'bird':'птица', 'mouse':'мышь'} {'bird': 'птица', 'mouse': 'мышь', 'dog': 'собака', 'cat': 'кошка'} >>>
Дело в том, что в словаре абсолютно не важен порядок пар, и интерпретатор выводит их в случайном порядке. Тогда как же получить доступ к определенному элементу, если индексация не возможна в принципе? Ответ: в словаре доступ к значениям осуществляется по ключам, которые заключаются в квадратные скобки (по аналогии с индексами строк и списков).
>>> dic ={'cat':'кошка','dog':'собака','bird':'птица','mouse':'мышь'} >>> dic['cat'] 'кошка' >>> dic['bird'] 'птица' >>>
Словари, как и списки, являются изменяемым типом данных: можно изменять, добавлять и удалять элементы (пары "ключ:значение"). Изначально словарь можно создать пустым (например, d = {}) и лишь потом заполнить его элементами. Добавление и изменение имеет одинаковый синтаксис: словарь[ключ] = значение. Ключ может быть как уже существующим (тогда происходит изменение значения), так и новым (происходит добавление элемента словаря). Удаление элемента словаря осуществляется с помощью функции del().
>>> dic ={'cat':'кошка','dog':'собака','bird':'птица','mouse':'мышь'} >>> dic['elephant'] = 'бегемот' >>> dic['fox'] = 'лиса' >>> dic {'fox': 'лиса', 'dog': 'собака', 'cat': 'кошка', 'elephant': 'бегемот', 'mouse': 'мышь', 'bird': 'птица'} >>> dic['elephant'] = 'слон' >>> del(dic['bird']) >>> dic {'fox': 'лиса', 'dog': 'собака', 'cat': 'кошка', 'elephant': 'слон', 'mouse': 'мышь'} >>>
Тип данных ключей и значений словарей не обязательно должны быть строками. Значения словарей могут быть более сложными (содержать структуры данных, например, другие словари или списки).
>>> d = {1:'one',2:'two',3:'three'} >>> d {1: 'one', 2: 'two', 3: 'three'} >>> d = {10:[3,2,8], 100:[1,10,5], 1000:[23,1,5]} >>> d {1000: [23, 1, 5], 10: [3, 2, 8], 100: [1, 10, 5]} >>> d = {1.1:2, 1.2:0, 1.3:8} >>> d {1.3: 8, 1.2: 0, 1.1: 2} >>> d = {1.1:2, 10:'apple', 'box':100} >>> d {'box': 100, 10: 'apple', 1.1: 2} >>>
Словари — это широко используемый тип данных языка Python. Для работы с ними существует ряд встроенных функций.