В данном уроке более подробно будет описано про словари и про методы для работы со словарями.
Словари, пожалуй, самый гибкий встроенный тип данных в языке программирования Python.
В списках объекты упорядочены, но в их сравнении в словарях объекты упорядочены по ключам, и вызов объекта происходит не по их идентификатору или же по смещению, а с помощью ключа.
Операция - Интерпретация
D = {} - Пустой словарь
D = {‘spam’: 2, ‘eggs’: 3} - Словарь из двух элементов
D = {‘food’: {‘ham’: 1, ‘egg’: 2}} - Вложение
D = dict(name=’Bob’, age=40) - Альтернативные способы создания словарей:
D = dict(zip(keyslist, valslist)) именованные аргументы, применение
D = dict.fromkeys([‘a’, ‘b’]) функции zip, списки ключей
D[‘eggs’] - Доступ к элементу по ключу
D[‘food’][‘ham’]
‘eggs’ in D - Проверка на вхождение: проверка наличия ключа
D.keys() - Методы: список ключей,
D.values() - список значений,
D.items() - список ключей и значений,
D.copy() - копирование,
D.get(key, default) - получение значения по умолчанию,
D.update(D2) - слияние,
D.pop(key) - удаление и так далее
len(D) - Длина (количество элементов)
D[key] = 42 - Добавление/изменение ключей,
del D[key] - удаление ключей
list(D.keys()) - Представления словарей (в Python 3.0)
D1.keys() & D2.keys()
D = {x: x*2 for x in range(10)} - Генераторы словарей (в Python 3.0)
% python
>>> D = {‘spam’: 2, ‘ham’: 1, ‘eggs’: 3} # Создание словаря
>>> D[‘spam’] # Извлечение значения по ключу
2
>>> D # Случайный порядок следования
{‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
Здесь переменной D присваивается словарь, в котором ключу ‘spam’ соответ-
ствует целочисленное значение 2, и так далее. Для доступа к элементам слова-
ря используется тот же самый синтаксис с квадратными скобками, что и при
извлечении элементов списков, но в данном случае доступ осуществляется по
ключу, а не по позиции элемента.
>>> len(D) # Число элементов словаря
>>> ‘ham’ in D # Проверка на вхождение
True
>>> list(D.keys()) # Создает новый список ключей
[‘eggs’, ‘ham’, ‘spam’]
Словари, пожалуй, самый гибкий встроенный тип данных в языке программирования Python.
В списках объекты упорядочены, но в их сравнении в словарях объекты упорядочены по ключам, и вызов объекта происходит не по их идентификатору или же по смещению, а с помощью ключа.
Операция - Интерпретация
D = {} - Пустой словарь
D = {‘spam’: 2, ‘eggs’: 3} - Словарь из двух элементов
D = {‘food’: {‘ham’: 1, ‘egg’: 2}} - Вложение
D = dict(name=’Bob’, age=40) - Альтернативные способы создания словарей:
D = dict(zip(keyslist, valslist)) именованные аргументы, применение
D = dict.fromkeys([‘a’, ‘b’]) функции zip, списки ключей
D[‘eggs’] - Доступ к элементу по ключу
D[‘food’][‘ham’]
‘eggs’ in D - Проверка на вхождение: проверка наличия ключа
D.keys() - Методы: список ключей,
D.values() - список значений,
D.items() - список ключей и значений,
D.copy() - копирование,
D.get(key, default) - получение значения по умолчанию,
D.update(D2) - слияние,
D.pop(key) - удаление и так далее
len(D) - Длина (количество элементов)
D[key] = 42 - Добавление/изменение ключей,
del D[key] - удаление ключей
list(D.keys()) - Представления словарей (в Python 3.0)
D1.keys() & D2.keys()
D = {x: x*2 for x in range(10)} - Генераторы словарей (в Python 3.0)
% python
>>> D = {‘spam’: 2, ‘ham’: 1, ‘eggs’: 3} # Создание словаря
>>> D[‘spam’] # Извлечение значения по ключу
2
>>> D # Случайный порядок следования
{‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
Здесь переменной D присваивается словарь, в котором ключу ‘spam’ соответ-
ствует целочисленное значение 2, и так далее. Для доступа к элементам слова-
ря используется тот же самый синтаксис с квадратными скобками, что и при
извлечении элементов списков, но в данном случае доступ осуществляется по
ключу, а не по позиции элемента.
>>> len(D) # Число элементов словаря
>>> ‘ham’ in D # Проверка на вхождение
True
>>> list(D.keys()) # Создает новый список ключей
[‘eggs’, ‘ham’, ‘spam’]
>>> D
{‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
>>> D[‘ham’] = [‘grill’, ‘bake’, ‘fry’] # Изменение элемента
>>> D
{‘eggs’: 3, ‘ham’: [‘grill’, ‘bake’, ‘fry’], ‘spam’: 2}
>>> del D[‘eggs’] # Удаление элемента
>>> D
{‘ham’: [‘grill’, ‘bake’, ‘fry’], ‘spam’: 2}
>>> D[‘brunch’] = ‘Bacon’ # Добавление нового элемента
>>> D
{‘brunch’: ‘Bacon’, ‘ham’: [‘grill’, ‘bake’, ‘fry’] , ‘spam’: 2}
Дополнительные методы словарей
Методы словарей обеспечивают выполнение различных операций. Например,
методы словарей values и items возвращают список значений элементов словаря
и кортежи пар (key, value) соответственно:
>>> D = {‘spam’: 2, ‘ham’: 1, ‘eggs’: 3}
>>> list(D.values())
[3, 1, 2]
>>> list(D.items())
[(‘eggs’, 3), (‘ham’, 1), (‘spam’, 2)]
>>> D.get(‘spam’) # Ключ присутствует в словаре
2
>>> print(D.get(‘toast’)) # Ключ отсутствует в словаре
None
>>> D.get(‘toast’, 88)
88
Метод update реализует своего рода операцию конкатенации для словарей, при этом он не имеет никакого отношения к упорядочению элементов слева направо (для словарей такое упорядочение не имеет смысла).
Он объединяет ключи и значения одного словаря с ключами и значениями другого, просто перезаписывая значения с одинаковыми ключами:
>>> D
{‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
>>> D2 = {‘toast’:4, ‘muffin’:5}
>>> D.update(D2)
>>> D
{‘toast’: 4, ‘muffin’: 5, ‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
Наконец, метод pop удаляет ключ из словаря и возвращает его значение. Он напоминает метод pop списков, только вместо необязательного индекса элемента принимает ключ:
# удаление элементов словаря по ключу
>>> D
{‘toast’: 4, ‘muffin’: 5, ‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
>>> D.pop(‘muffin’)
5
>>> D.pop(‘toast’)# Удаляет и возвращает значение заданного ключа
>>> D
{‘eggs’: 3, ‘ham’: 1, ‘spam’: 2}
# удаление элементов списка по номеру позиции
>>> L = [‘aa’, ‘bb’, ‘cc’, ‘dd’]
>>> L.pop() # Удаляет и возвращает последний элемент списка
‘dd’
>>> L
[‘aa’, ‘bb’, ‘cc’]
>>> L.pop(1) # Удаляет и возвращает элемент из заданной позиции
‘bb’
>>> L
[‘aa’, ‘cc’]
На этом короткий курс по словарям окончен, ждите следующий урок по кортежам и файлам...
и ни слова о методе "D[key].append(data)", добавляющим в значение-список ключа key новый элемент
ОтветитьУдалить