20 дек. 2000 г.

Ввведение в программирование на Python (для детей) урок 9

Введение в словари.

Одним из сложных типов данных (наряду со строками и списками) в языке программирования Python являются словари. Словарь - это изменяемый (как список) неупорядоченный (в отличие от строк и списков) набор пар "ключ:значение".
Чтобы представление о словаре стало более понятным, можно провести аналогию с обычным словарем, например, англо-русским. На каждое английское слово в таком словаре есть русское слово-перевод: cat – кошка, dog – собака, table – стол и т.д. Если англо-русский словарь описывать с помощью Python, то английские слова будут ключами, а русские — их значениями:

{'cat':'кошка', 'dog':'собака', 'bird':'птица', 'mouse':'мышь'}

Обратите внимание на фигурные скобки, именно с их помощью определяется словарь. Синтаксис словаря на Питоне можно описать такой схемой:
Синтаксис словаря на Python
Если создать словарь в интерпретаторе 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. Для работы с ними существует ряд встроенных функций.

Практическая работа

  1. Создайте словарь, связав его с переменной school, и наполните его данными, которые бы отражали количество учащихся в десяти разных классах (например, 1а, 1б, 2б, 6а, 7в и т.д.).
  2. Узнайте сколько человек в каком-нибудь классе.
  3. Представьте, что в школе произошли изменения, внесите их в словарь:
    - в трех классах изменилось количество учащихся;
    - в школе появилось два новых класса;
    - в школе расформировали один из классов.
  4. 4. Выведите содержимое словаря на экран.