Статья опубликована в рамках: LXXIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 11 июля 2019 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
СЛОВАРИ В ЯЗЫКЕ PYTHON
Словари в Python - беспорядочные коллекции совершенно произвольных объектов с доступом по ключу.
Их иногда ещё называют ассоциативными массивами или хеш-таблицами. Индексируются при помощи ключей, которые могут быть любого неизменяемого типа. Элементы словаря состоят из двух компонентов. Первый имеет название «ключ», а второй – «значение».
Простейшим примером информации, которую в программе удобно хранить в виде словаря может служить:
- имя человека и дата его дня рождения;
- номер авиарейса и аэропорт назначения;
- личное транспортное средство и его гос. номер.
«Ключом» в словаре может быть любой так называемый «неизменяемый тип» данных, к которому относится число, символьная строка или кортеж (неизменяемый набор значений).
Для создания словарей написания кода программы нам уже были известны все элементы словаря, тогда конечный код программы создается так:
<имя словаря> = {<ключ 1>: <значение 1>, {<ключ 2>: <значение 2>, ...}
структура: «имя человека: дата его дня рождения»):
структура: «номер авиарейса: аэропорт назначения»):
R = {‘VRd1899': ‘Краснодар', ‘MTB4381': 'Санкт-Петербург', ‘BBKP1881': 'Волгоград', ‘GSJ157': 'Геленджик'}
Когда тип всех ключей – строковый и они не содержат пробелов, то для создания словаря удобно использовать функцию dict()
R = dict(VRd1899': ‘Краснодар',MTB4381: 'Санкт-Петербург', BBKP1881: 'Волгоград',GSJ157: 'Геленджик')
Добавить элемент в уже существующий словарь можно, указав новый ключ и новое значение в виде:
R['АБ1234'] = 'Сургут'
Если при этом указать уже существующий ключ, соответствующее ему значение будет изменено на новое.
Если же все элементы словаря становятся известными в ходе выполнения программы (с использованием инструкции input() или после расчетов), то сначала надо описать словарь как пустой:
D = {}
а затем добавлять в него значения
for k in range(…):
kl = input('Введите ключ очередного элемента словаря')
zn = input('Введите значение очередного элемента словаря')
R[kl] = zn
d = {'cat': 'кошка', 'dog': 'собака', 'bird': 'птица', 'mouse': 'мышь'}
print(d)
{'dog': 'собака', 'cat': 'кошка', 'mouse': 'мышь', 'bird': 'птица'}
R = {'VRd1899': ' Краснодар ', 'MTB4381': 'Санкт-Петербург', ' BBKP1881 ':'Волгоград', 'GSJ157': 'Геленджик'}
print(R['MTB4381'])
Ключ элементов должен быть уникальным по отношению к другим. Если в словаре имеется повторение — значит будет использовано, то значение с данным ключом, которое ближе к концу словаря. [1, c. 208 – 212]
Таблица 1.
Некоторые другие средства для работы со словарями
Вид |
Тип |
Формат |
Комментарий |
Len() |
Функция |
Len(<имя словаря>) |
Возврат количества элементов словаря |
Keys() |
Функция |
Keys(<имя словаря>) |
Возврат списка ключей словаря |
Values() |
Функция |
Values(<имя словаря>) |
Возврат списка значений словаря |
del |
Оператор |
Del<имя словаря>[<ключ>] |
Удаляет элемент словаря по его ключу |
Clear() |
Метод |
<имя словаря>. Clear() |
Удаляет все значения из словаря |
В Python 2 версии метод keys дает нам список, а в версии 3 он выдаёт объект view. Это предоставляет разработчику возможность обновлять словарь, так что view также обновится. Стоит обратить внимание что, когда используется in для текста содержимого словаря, лучше будет сделать это в словаре, а не в списке, выдаваемом методом keys.
- if "name" in my_dict #Такая конструкция правильная
- if "name" in my_dict.keys() # Работает но медленее
Пока это, возможно, не говорит вам о многом, во время реальной работы ситуация будет другой и тогда каждая секунда будет важна. При создании тысячи файлов для обработки, эти маленькие хитрости могут практически избавить от бесполезной траты времени.
Существуют различные методы словарей, часто используются
- dict.clear() - очищает словарь.
- dict.copy() - возвращает копию словаря.
- classmethod dict.fromkeys(seq[, value]) - создает словарь с ключами из seq и значением value (по умолчанию None).
- dict.get(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а возвращает default (по умолчанию None).
- dict.items() - возвращает пары (ключ, значение).
- dict.keys() - возвращает ключи в словаре.
- dict.pop(key[, default]) - удаляет ключ и возвращает значение. Если ключа нет, возвращает default (по умолчанию бросает исключение).
- dict.popitem() - удаляет и возвращает пару (ключ, значение). Если словарь пуст, бросает исключение KeyError. Помните, что словари неупорядочены.
- dict.setdefault(key[, default]) - возвращает значение ключа, но если его нет, не бросает исключение, а создает ключ с значением default (по умолчанию None).
- dict.update([other]) - обновляет словарь, добавляя пары (ключ, значение) из other. Существующие ключи перезаписываются. Возвращает None (не новый словарь!).
- dict.values() - возвращает значения в словаре. [2]
Можно получить список ключей путем вызова метода keys() в том или ином словаре. Чтобы проверить, присутствует ли ключ в словаре, нужно применить ключ «in» в Python. В некоторых старых версиях Python начиная с 2.3 и более ранних, можно увидеть ключевое слово «has_key», используемое для проверки наличия ключа в словаре. Данный ключ уже является устаревшим в Python 2.x, и был удален, начиная с версии 3.x.
Давайте попробуем создать наш первый словарь:
- my_dict = {}
- another_dict = dict()
- my_other_dict = {"one":1, "two":2, "three":3}
- print(my_other_dict) # {'three': 3, 'two': 2, 'one': 1}
Первые два примера показывают, как можно создавать пустой словарь. Все словари находятся в фигурных скобках. Заключительная строчка демонстрирует, то что подразумевается, когда говорим «неупорядоченный словарь».
Настало время узнать каким образом принимаются значения в словаре.
- my_other_dict = {"one":1, "two":2, "three":3}
- print(my_other_dict["one"]) # 1
- my_dict = {"name":"JoJo", "address":"123 Happy Way"}
- print(my_dict["name"]) # 'JoJo'
В первом случае был использован словарь из предыдущего примера, и взяли значение, связанное с ключом, имеющим название one. Второй пример показывает, как задать своё значение для ключа name. Попытаемся выяснить присутствует ли ключ в словаре или нет:
- print ("name" in my_dict) # True
- print ("state" in my_dict) # False
Если ключ в словаре, Python выдает нам Boolean True, в противном случае получим Boolean False. Если нужно получить список ключей в словаре, то необходимо сделать следующее:
- print(my_dict.keys()) # dict_keys(['name', 'address']) [3]
Список литературы:
- Златопольский Д. М. Основы программирования на языке Python. – М.: ДМК Пресс, 2017.
- webhamster.ru/mytetrashare/index/mtb172/15164523423opaqzwxgy
- python-scripts.com/lists-tuples-dictionaries
дипломов
Оставить комментарий