Хранить информацию в Python можно несколькими способами. Один из них – словарь. Это объект класса dict, информация в котором представлена в двух форматах: значения и ключа, по которому его можно идентифицировать.Соответственно, чтобы получить доступ к определенному элементу словаря, необходимо знать его ключ. Сегодня мы более подробно рассмотрим особенности работы со словарями в Python.
Как сгенерировать объект класса «Словарь»?
Словари в Python хранятся в фигурных скобках, которые присваиваются переменной. Внутри фигурных скобок необходимо использовать ключ и значение в следующем формате.
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)
В этом примере мы создали объект класса dict с названием dict_sample. После этого мы сгенерировали переменную x, значение которой соответствует значению элемента с ключом model. Теперь давайте приведем еще один пример.
dict = {‘Name’: ‘Mercy’, ‘Age’: 23, ‘Course’: ‘Accounting’}
print(«Student Name:», dict[‘Name’])
print(«Course:», dict[‘Course’])
print(«Age:», dict[‘Age’])
Попробуйте догадаться, что в конечном итоге пойдет на вывод.
У словарей есть также метод get(), отвечающий за доступ к элементам словаря. Точно так же, как и другие методы, его необходимо добавлять к словарю через точку, а потом использовать в качестве аргумента ключ соответствующего элемента.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
x = dict_sample.get(«model»)
print(x)
Теперь вы владеете информацией о том, как осуществляется доступ к отдельным элементам словаря с использованием разнообразных методов. Далее мы поговорим о том, как добавлять новые объекты в словарь, который уже есть на данный момент.
Осуществление добавления элементов
Есть множество методов, с помощью которых можно добавлять дополнительные элементы словаря. Например, можно вызвать элемент с ключом, которого нет, а потом передать ему нужное значение. Приведем фрагмент кода для примера.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
dict_sample[«Capacity»] = «1800CC»
print(dict_sample)
Вывод консоли в этом случае будет следующим.
{‘Capacity’: ‘1800CC’, ‘year’: 2012, ‘Company’: ‘Toyota’, ‘model’: ‘Premio’}
Как мы видим, мы создали новый элемент со значением 180CC, найти который можно по ключу Capacity. Мы его добавили в качестве первого элемента словаря.
А теперь давайте приведем еще один пример. Сначала попробуем сгенерировать словарь, который не содержит вообще никаких значений.
MyDictionary = {}
print(«An Empty Dictionary: «)
print(MyDictionary)
Никаких значений этот словарь не выдает, поскольку в нем не содержится никаких данных. А теперь давайте попробуем добавить к нему элементы.
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)}
Здесь в качестве названия ключа выступает Values, а его значения перечисляются через знак =.
Мы не только можем добавлять дополнительные элементы словаря, но и изменять уже существующие. Поговорим об этом более подробно.
Обновление элементов
После того, как нами было добавлено значение в словарь, его можно изменить в любой подходящий момент. Чтобы отредактировать содержимое элемента, применяется соответствующее название ключа.
Как в этом фрагменте кода.
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)
Последовательность действий простая. Сначала осуществляется вызов ключа del, после чего идет название словаря. Затем идут квадратные скобки, необходимые для указания ключа элемента, который нам надо убрать. В нашем случае это – год выпуска машины. После того, как мы выполним этот код, сначала создается словарь, а потом запись «year» будет удалена из него.
Второй способ, позволяющий удалить ключ, – использование метода pop, который относится непосредственно к словарю. В качестве аргумента этого метода используется ключ, который нам надо удалить вместе со значением. Как в этом случае.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
dict_sample.pop(«year»)
print(dict_sample)
Также можно воспользоваться методом popitem(), чтобы удалить элемент, являющийся последним в словаре. В этом случае никаких аргументов указывать не надо. Интерпретатор самостоятельно найдет последнее значение и удалит его.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
dict_sample.popitem()
print(dict_sample)
В этом случае будет удален элемент, соответствующий году выпуска автомобиля. Как видим, все просто: достаточно вызвать функцию popitem().
Хорошо, а что если нам надо удалить словарь со всеми его элементами полностью? Как это сделать? Если использовать эти методы применительно к каждому ключу, на это может потребоваться немало времени. Зато можно воспользоваться ключевым словом del, применительно к целому словарю. Как в этом примере.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
del dict_sample
print(dict_sample)
Этим фрагментом кода будет возвращена ошибка, поскольку функция print() пытается прочитать содержимое словаря, которого уже нет на момент ее исполнения.
В некоторых ситуациях может понадобиться убрать все элементы словаря, но при этом самого его оставить. Для этого используется функция clear().
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
dict_sample.clear()
print(dict_sample)
В результате исполнения этого кода будет возвращен пустой словарь, поскольку в нем уже не будет содержаться никаких элементов. Они ведь ранее были удалены.
Иные методы словарей
Вообще, для работы со словарями используется целая совокупность методов. Рассмотрим некоторые из них вкратце.
- len(). С его помощью программа может получить длительность словаря. Как в этом фрагменте кода.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
print(len(dict_sample))
Общее количество записей, которые есть в этом словаре, – 3. Следовательно, этот метод вернет значение 3.
- copy(). С помощью этого метода осуществляется возврат копии существующего словаря. Как в этом примере кода.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
x = dict_sample.copy()
print(x)
- items(). Этот метод используется для того, чтобы перебрать содержимое словаря.
dict_sample = {
«Company»: «Toyota»,
«model»: «Premio»,
«year»: 2012
}
for k, v in dict_sample.items():
print(k, v)
Как видим, работа со словарями делает создание программы более удобным для разработчика. В отличие от других объектов, содержащих большое количество данных, словари могут хранить не только индексы элементов для возможности получения доступа к ним, но и названия. Это делает разработку программы более простой.