- Вступление
- Создание словаря
- Доступ к элементам
- Добавление элементов
- Обновление элементов
- Удаление элементов
- Другие общие методы
- Заключение
Вступление
Python имеет множество встроенных структур данных, способных хранить различные типы данных. Словарь Python - это одна из таких структур данных, которая может хранить данные в виде пар ключ-значение. Доступ к значениям в словаре Python можно получить с помощью ключей. В этой статье мы подробно обсудим словарь Python.
Создание словаря
Чтобы создать словарь Python, нам нужно передать последовательность
элементов внутри фигурных скобок {}
и разделить их запятой (,). Каждый
элемент имеет ключ и значение, выраженное в виде пары «ключ: значение».
Значения могут принадлежать к любому типу данных и могут повторяться, но ключи должны оставаться уникальными.
Следующие примеры демонстрируют, как создавать словари Python:
Создание пустого словаря:
dict_sample = {}
Создание словаря с целочисленными ключами:
dict_sample = {1: 'mango', 2: 'pawpaw'}
Создание словаря со смешанными ключами:
dict_sample = {'fruit': 'mango', 1: [4, 6, 8]}
Мы также можем создать словарь, явно вызвав метод Python 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
и ее значение было установлено равным значению
ключа «модель» в словаре.
Вот еще один пример:
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'}
Новый элемент имеет ключ «Емкость» и соответствующее ему значение «1800CC». Он был добавлен как первый элемент словаря.
Другой пример. Сначала давайте сначала создадим пустой словарь:
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 - это ключ, а «Яблоки» - значение.
Мы даже можем добавить набор значений к одному ключу. Например:
MyDictionary['Values'] = 1, "Pairs", 4
print("\n3 elements have been added: ")
print(MyDictionary)
Выход:
3 elements have been added:
{'Values': (1, 'Pairs', 4)}
В приведенном выше примере имя ключа - «Values», а все после =
- это
фактические значения для этого ключа, сохраненные как
Set .
Помимо добавления новых элементов в словарь, элементы словаря также могут быть обновлены / изменены, о чем мы поговорим в следующем разделе.
Обновление элементов
После добавления значения в словарь мы можем изменить существующий элемент словаря. Вы используете ключ элемента, чтобы изменить соответствующее значение. Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
dict_sample["year"] = 2014
print(dict_sample)
Выход:
{'year': 2014, 'model': 'Premio', 'Company': 'Toyota'}
В этом примере вы можете видеть, что мы обновили значение ключа year со старого значения 2012 года на новое значение 2014 года.
Удаление элементов
Удаление элемента из словаря может быть выполнено несколькими способами, которые мы подробно обсудим в этом разделе:
del
можно использовать для удаления элемента с указанным ключом.
Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
del dict_sample["year"]
print(dict_sample)
Выход:
{'Company': 'Toyota', 'model': 'Premio'}
Мы вызвали del
за которым следует имя словаря. Внутри квадратных
скобок, следующих за названием словаря, мы передали ключ элемента,
который нам нужно удалить из словаря, которым в этом примере был «год».
Затем запись для «года» в словаре была удалена.
Другой способ удалить пару ключ-значение - использовать pop()
и
передать ключ удаляемой записи в качестве аргумента функции. Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
dict_sample.pop("year")
print(dict_sample)
Выход:
{'Company': 'Toyota', 'model': 'Premio'}
Мы вызвали pop()
, добавив к ней имя словаря. Опять же, в этом примере
будет удалена запись «год» в словаре.
Функция popitem()
удаляет последний элемент, вставленный в словарь,
без необходимости указывать ключ. Взгляните на следующий пример:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
dict_sample.popitem()
print(dict_sample)
Выход:
{'Company': 'Toyota', 'model': 'Premio'}
Последней записью в словаре был «год». Он был удален после вызова
функции popitem()
.
Но что, если вы хотите удалить весь словарь? Было бы сложно и
обременительно использовать один из этих методов для каждой отдельной
клавиши. Вместо этого вы можете использовать del
для удаления всего
словаря. Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
del dict_sample
print(dict_sample)
Выход:
NameError: name 'dict_sample' is not defined
Код возвращает ошибку. Причина в том, что мы пытаемся получить доступ к словарю, которого не существует, так как он был удален.
Однако в вашем случае может потребоваться просто удалить все элементы
словаря и оставить пустой словарь. Этого можно добиться, вызвав в
словаре функцию 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)
Выход:
{'Company': 'Toyota', 'year': 2012, 'model': 'Premio'}
Мы создали копию словаря с именем dict_sample
и присвоили ее
переменной x
. Если x
напечатан на консоли, вы увидите, что он
содержит те же элементы, что и хранящиеся в словаре dict_sample
Обратите внимание, что это полезно, потому что изменения, внесенные в скопированный словарь, не повлияют на исходный.
Метод items ()
При вызове этот метод возвращает итерируемый объект. Итерируемый объект имеет пары ключ-значение для словаря в виде кортежей в списке. Этот метод в основном используется, когда вы хотите перебрать словарь.
Метод просто вызывается для имени объекта словаря, как показано ниже:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
for k, v in dict_sample.items():
print(k, v)
Выход:
('Company', 'Toyota')
('model', 'Premio')
('year', 2012)
Объект, возвращаемый функцией items()
также может использоваться для
отображения изменений, внесенных в словарь. Это показано ниже:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = dict_sample.items()
print(x)
dict_sample["model"] = "Mark X"
print(x)
Выход:
dict_items([('Company', 'Toyota'), ('model', 'Premio'), ('year', 2012)])
dict_items([('Company', 'Toyota'), ('model', 'Mark X'), ('year', 2012)])
Выходные данные показывают, что при изменении значения в словаре объект items также обновляется, чтобы отразить это изменение.
Метод fromkeys ()
Этот метод возвращает словарь с указанными ключами и значениями. Синтаксис приведен ниже:
dictionary.fromkeys(keys, value)
Значение параметра required keys
является итеративным и определяет
ключи для нового словаря. Значение value
является необязательным и
указывает значение по умолчанию для всех ключей. Значение по умолчанию
для этого - None
.
Предположим, нам нужно создать словарь из трех ключей с одинаковым значением. Сделать это можно следующим образом:
name = ('John', 'Nicholas', 'Mercy')
age = 25
dict_sample = dict.fromkeys(name, age)
print(dict_sample)
Выход:
{'John': 25, 'Mercy': 25, 'Nicholas': 25}
В приведенном выше скрипте мы указали ключи и одно значение. Метод
fromkeys()
смог выбрать ключи и объединить их с этим значением для
создания заполненного словаря.
Значение keys
является обязательным. В следующем примере показано, что
происходит, если значение values
не указано:
name = ('John', 'Nicholas', 'Mercy')
dict_sample = dict.fromkeys(name)
print(dict_sample)
Выход:
{'John': None, 'Mercy': None, 'Nicholas': None}
Было использовано значение по умолчанию - None
.
Метод setdefault ()
Этот метод применим, когда нам нужно получить значение элемента с указанным ключом. Если ключ не найден, он будет вставлен в словарь вместе с указанным значением.
Метод имеет следующий синтаксис:
dictionary.setdefault(keyname, value)
В этой функции keyname
параметр keyname. Он представляет собой
ключевое имя элемента, из которого нужно вернуть значение. Параметр
value
является обязательным. Если в словаре уже есть ключ, этот
параметр не подействует. Если ключ не существует, то значение, указанное
в этой функции, станет значением ключа. Значение по умолчанию - None
.
Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = dict_sample.setdefault("color", "Gray")
print(x)
Выход
Gray
В словаре нет ключа для color
. Метод setdefault()
вставил этот
ключ, и указанное значение, то есть "Gray", было использовано в
качестве его значения.
В следующем примере показано, как ведет себя метод, если значение ключа действительно существует:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = dict_sample.setdefault("model", "Allion")
print(x)
Выход:
Premio
Значение «Allion» не влияет на словарь, так как у нас уже есть значение для ключа.
Метод keys ()
Этот метод также возвращает итерируемый объект. Возвращаемый объект
представляет собой список всех ключей в словаре. Как и в случае с
items()
, возвращаемый объект может использоваться для отражения
изменений, внесенных в словарь.
Чтобы использовать этот метод, мы вызываем его только по имени словаря, как показано ниже:
dictionary.keys()
Например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
x = dict_sample.keys()
print(x)
Выход:
dict_keys(['model', 'Company', 'year'])
Часто этот метод используется для перебора каждого ключа в вашем словаре, например:
dict_sample = {
"Company": "Toyota",
"model": "Premio",
"year": 2012
}
for k in dict_sample.keys():
print(k)
Выход:
Company
model
year
Заключение
Это знаменует конец этого руководства по словарям Python. Эти словари хранят данные в парах «ключ: значение». «Ключ» действует как идентификатор элемента, а «значение» - это значение элемента. Словарь Python содержит множество функций, которые можно применять для поиска или обработки данных. В этой статье мы увидели, как можно создавать, изменять и удалять словарь Python, а также некоторые из наиболее часто используемых методов словаря.