Словари в Python 3 — самоучитель

Словарь – один из самых популярных итерируемых объектов в Python. Это такой тип, который содержит в себе сразу несколько элементов и поддерживает возможность их перебрать с помощью цикла for

Основные типы итерируемых объектов в Python

Чтобы понять особенности словаря и того, для чего он используется, нужно разобраться в целом, какие типы итерируемых объектов в Python бывают.

  1. Список. Это самый простой тип структур данных, в котором содержатся значения. В качестве них могут выступать числа, строки, имена, и так далее. 
  2. Кортежи. Этот тип напоминает список, только имеет одно исключение – нельзя изменять значение кортежа после того, как он был создан. Например, это может быть полезно, когда ставится задача обеспечить безопасность.
    В качестве данных для кортежа могут использоваться месяцы года, дисциплины Олимпийских игр, штаты США. То есть, такие данные, которые априори не могут изменяться, и они стабильны в течение длительного времени.
  3. Словари. Это структура данных, которая содержит два элемента: ключ и значение. Используются для хранения блоков информации, где в качестве ключа выступает его название, а его значение – это непосредственно те данные, которые хранятся в словаре.

Таким образом, перепутать словарь с другими структурами данных довольно непросто. Ведь только он имеет ключ и значение. 

В целом, некий аналог ключей есть и в других типах данных. Это индексы. Правда, они могут быть исключительно числовыми. В то же время ключ словаря может быть как числовым, так и текстовым и при этом еще может быть любым. Например, может сначала в качестве ключа использоваться число 2, а потом – 1, и это не будет странным для Python.

Какие данные могут быть указаны в словаре?

В словарях может храниться целый спектр информации:

  1. Данные клиента, включая список его покупок. 
  2. Названия стран и количество полученных медалей. 
  3. Автомобильные бренды с перечислением их моделей.
  4. Перечень стран и количество ДТП со смертельным исходом.

Чтобы получить доступ к значению словаря, нужно знать его ключ. 

Как создать словарь?

Создать словарь в 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’}

ОфисГуру
Adblock
detector