Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чаплыгин А.Н. Учимся програмировать вместе с Пи...doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

§10.2. Операции над словарями

Оператор del удаляет из словаря пару ключ-значение. Например, следующий словарь содержит названия различных фруктов и количество каждого фрукта на складе:

86

Ревизия: 170

Словари

>» inventory = {'apples'

430,

'bananas

': 312, 'oranges

': 525,

'pears': 217}

>» print inventory

{'oranges': 525, 'apples'

430,

'pears':

217, 'bananas':

312}

Если кто-нибудь купил все груши, мы можем удалить этот элемент из словаря:

>» del inventory [ 'pears ' ]

>» print inventory

{'oranges': 525, 'apples':

430,

'bananas'

: 312}

Или если скоро мы ожидаем поступления новых груш, мы можем просто изменить значение связанное с грушами:

>» inventory [ 'pears ' ] =

0

>» print inventory

{'oranges': 525, 'apples

.

430,

'pears'

o,

'bananas'

: 312}

Функция len также работает со словарями, она возвращает число пар ключ-значение:

>» len (inventory) 4

§10.3. Методы словарей

[NOTE: возможно стоит ввести понятие метода (на простом уровне) немного пораньше]

Метод - это обычная функция, принимающая аргументы и возвращающая значения, но отличающаяся синтаксисом вызова. Подробнее с методами мы будем разбираться в главах, посвященных объектно-ориентированному программированию, где станет понятны более глубокие различия между обычными функциями и методами.

Итак, метод key получает словарь и возвращает список ключей которые находит, но вместо синтаксиса функции keys (eng2sp), мы используем синтаксис метода eng2sp.keys О.

>» eng2sp . keys () ['one', 'three', 'two']

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

Вызов метода называют invocation; в этом случае, мы могли сказать, что мы вызываем keys() объекта eng2sp.

Похожий метод values () - он возвращает список значений в словаре:

>» eng2sp .values () ['uno', 'tres', 'dos']

Метод items возвращает список кортежей ключ-значение:

>» eng2sp . items ()

87

Ревизия: 170

Словари

[('one','uno'), ('three', 'tres'), ('two', 'dos')]

Если метод принимает аргументы, он использует тот же синтаксис что и вызов функции. Например, метод has_key () принимает ключ и возвращает истину (1) если такой ключ присутствует в словаре.

>» eng2sp .has_key ( ' one ' )

1

>» eng2sp .has_key ( ' deux')

0

Если вы пытаетесь вызвать метод без указания объекта, вы получаете ошибку. В этом случае, сообщение об ошибке не очень информативное:

>» has_key ( ' one ' ) NameError: has_key