Словарь – один из самых популярных итерируемых объектов в Python. Это такой тип, который содержит в себе сразу несколько элементов и поддерживает возможность их перебрать с помощью цикла for.
Основные типы итерируемых объектов в Python
Чтобы понять особенности словаря и того, для чего он используется, нужно разобраться в целом, какие типы итерируемых объектов в Python бывают.
- Список. Это самый простой тип структур данных, в котором содержатся значения. В качестве них могут выступать числа, строки, имена, и так далее.
- Кортежи. Этот тип напоминает список, только имеет одно исключение – нельзя изменять значение кортежа после того, как он был создан. Например, это может быть полезно, когда ставится задача обеспечить безопасность.
В качестве данных для кортежа могут использоваться месяцы года, дисциплины Олимпийских игр, штаты США. То есть, такие данные, которые априори не могут изменяться, и они стабильны в течение длительного времени. - Словари. Это структура данных, которая содержит два элемента: ключ и значение. Используются для хранения блоков информации, где в качестве ключа выступает его название, а его значение – это непосредственно те данные, которые хранятся в словаре.
Таким образом, перепутать словарь с другими структурами данных довольно непросто. Ведь только он имеет ключ и значение.
В целом, некий аналог ключей есть и в других типах данных. Это индексы. Правда, они могут быть исключительно числовыми. В то же время ключ словаря может быть как числовым, так и текстовым и при этом еще может быть любым. Например, может сначала в качестве ключа использоваться число 2, а потом – 1, и это не будет странным для Python.
Какие данные могут быть указаны в словаре?
В словарях может храниться целый спектр информации:
- Данные клиента, включая список его покупок.
- Названия стран и количество полученных медалей.
- Автомобильные бренды с перечислением их моделей.
- Перечень стран и количество ДТП со смертельным исходом.
Чтобы получить доступ к значению словаря, нужно знать его ключ.
Как создать словарь?
Создать словарь в Python очень просто. Достаточно лишь написать последовательность фигурных скобок, а потом задать последовательность пары «ключ-значение» через запятую.
Интересно то, что значения в словарях могут быть одинаковыми. Единственное требование – ключи должны отличаться друг от друга.
Давайте приведем примеры создания словарей Python. Если нам нужен объект, не содержащий никаких значений, то нам нужно просто написать название переменной, а потом присвоить ей пару фигурных скобок.
dict_sample = {}
Также можно в качестве ключей использовать целые числа. Вот так будет выглядеть такой словарь.
dict_sample = {1: 'mango', 2: 'pawpaw'}
Ключи, как говорилось выше, могут относиться к разным типам. Давайте приведем пример такого ключа.
dict_sample = {'fruit': 'mango', 1: [4, 6, 8]}
Помимо фигурных скобок, можно воспользоваться функцией-конструктором dict().
dict_sample = dict({1:'mango', 2:'pawpaw'})
При создании словаря может использоваться последовательность, подобная той, которая есть в приведенном ниже примере.
dict_sample = dict([(1,'mango'), (2,'pawpaw')])
Словари бывают и вложенными. Это означает, что внутри одного словаря можно создавать другой, и в этом не будет никакой ошибки. Вот пример кода, где это реализовано на практике.
dict_sample = { 1: {'student1': 'Nicholas', 'student2': 'John', 'student3': 'Mercy'}, 2: {'course1': 'Computer Science', 'course2': 'Mathematics', 'course3': 'Accounting'} }
Чтобы вывести значения, которые содержатся в словаре, можно воспользоваться функцией print() и передать его название в качестве аргумента. Например, так.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } print(dict_sample)
На вывод отправятся такие строки.
{'Company': 'Toyota', 'model': 'Premio', 'year': 2012}
Как работать с теми или иными элементами словаря
Чтобы работать с элементами словаря, как с переменными, необходимо к ним получить доступ. Для этого необходимо в квадратных скобках передать ключ. Например.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } x = dict_sample["model"] print(x)
Вывод в результате выполнения этих строк будет следующим.
Premio
Нами был сгенерирован словарь, имеющей название dict_sample. После этого мы создали переменную x, значение которой – это значение ключа [“model”] из словаря.
А теперь давайте приведем еще один пример.
dict = {'Name': 'Mercy', 'Age': 23, 'Course': 'Accounting'} print("Student Name:", dict['Name']) print("Course:", dict['Course']) print("Age:", dict['Age'])
Если мы попробуем выполнить этот код, на вывод отправятся такие строки.
Student Name: Mercy
Course: Accounting
Age: 23
Также в объекте словаря есть функция get(), которая может быть использована для получения доступа к его элементам. Она может добавляться к словарям через точку, после чего будет выполнена передача названия ключа в качестве аргумента функции. Например, так.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } x = dict_sample.get("model") print(x)
Если мы эти строки попробуем запустить, то мы получим значение элемента, который кодируется этим ключом.
Premio
Теперь вы понимаете, каким образом осуществляется доступ к элементам словаря с использованием различных методов. А теперь давайте поговорим о том, что делать для добавления новых элементов в словарь, который уже существует.
Как добавлять новые элементы?
Чтобы добавить новые элементы в словарь, есть несколько способов. Можно использовать новый ключ и присвоить ему значение. Например, как в этом фрагменте кода.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } dict_sample["Capacity"] = "1800CC" print(dict_sample)
Ну и, по традиции, приведем пример строки, которая будет выведена в консоль после выполнения программы.
{‘Capacity’: ‘1800CC’, ‘year’: 2012, ‘Company’: ‘Toyota’, ‘model’: ‘Premio’}
Обратите внимание! Мы создали новый элемент. У него ключ “Capacity”, а значение – 180CC. Этот элемент стал одним из тех, которые содержатся в словаре.
А теперь давайте рассмотрим еще один пример. Давайте попробуем создать пустой словарь.
MyDictionary = {} print("An Empty Dictionary: ") print(MyDictionary)
Вывод:
An Empty Dictionary:
Обратите внимание, что этот словарь не возвращает никаких значений. Ведь в нем не содержится никаких данных. Давайте теперь к нему одним за другим добавим элементы.
MyDictionary[0] = 'Apples' MyDictionary[2] = 'Mangoes' MyDictionary[3] = 20 print("\n3 elements have been added: ") print(MyDictionary)
И уже теперь, когда мы запустим код, перед нами откроется следующая строка.
3 elements have been added: {0: ‘Apples’, 2: ‘Mangoes’, 3: 20}
Чтобы добавить элементы, мы отдельно указали ключи и соответствующие значения. Например,
MyDictionary[0] = 'Apples'
В данном примере 0 – это ключ, а “Apples” – значение.
Также можно добавить несколько значений для одного ключа. Например, так.
MyDictionary['Values'] = 1, "Pairs", 4 print("\n3 elements have been added: ") print(MyDictionary)
И приводим вывод интерпретатора.
3 elements have been added: {‘Values’: (1, ‘Pairs’, 4)}
В данном примере название ключа – “Value”, а все, что находится после знака «равно» – это значения в формате множества (неупорядоченного набора данных, элементы которого размещены в хаотичном порядке).
Кроме добавления элементов, можно с ними осуществлять операции изменения или обновления.
Как обновлять данные элементов в словарях?
Итак, мы добавили значения в словарь. Теперь давайте попробуем изменить, допустим, год выпуска автомобиля. Чтобы сделать это, необходимо использовать соответствующий ключ.
Например.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } dict_sample["year"] = 2014 print(dict_sample)
Если запустить эти строки кода, результат получим следующий.
{‘year’: 2014, ‘model’: ‘Premio’, ‘Company’: ‘Toyota’}
В данном примере мы видим, что значение ключа «year» было изменено на 2014.
Удаление элементов
Как можно удалить элемент словаря? Есть сразу несколько доступных методов, с помощью которых можно сделать это. Вернее, способов (поскольку метод – это термин языка Python, и мы сделали это уточнение во избежание путаницы).
Например, удалять данные можно с помощью ключевого слова del. Если мы знаем конкретный ключ элемента, который надо удалить, можно его использовать. Например.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } del dict_sample["year"] print(dict_sample)
Вывод:
{‘Company’: ‘Toyota’, ‘model’: ‘Premio’}
В этом примере мы сначала вызвали ключевое слово del, а потом указали название словаря. Затем у нас в скобках указан ключ элемента, который надо удалить. В нашем случае это – “year”. Соответствующая запись удаляется.
Также элемент словаря можно удалить с помощью функции pop(), а в ее аргументе использовать ключ.
И, наконец, последняя функция, с помощью которой можно удалить элемент словаря – это popitem(). Она уже не содержит никаких аргументов. В этом нет ничего удивительного, учитывая то, что она просто удаляет последний элемент из последовательности.
И приводим пример ее использования.
dict_sample = { "Company": "Toyota", "model": "Premio", "year": 2012 } dict_sample.popitem() print(dict_sample)
Поскольку последняя запись в этом словаре была годом выпуска автомобиля, то она и была удалена. Вывод будет таким.
{‘Company’: ‘Toyota’, ‘model’: ‘Premio’}