# Python: Добавление пары Ключ:Значение в Словарь

В этом уроке **вы узнаете, как добавлять пары `ключ:значение` в словари Python**. Вы научитесь добавлять совершенно новые элементы в словарь, добавлять значения к существующим ключам, добавлять элементы словаря в цикле for, а также использовать функцию `zip()` для добавления элементов из нескольких списков.

**Что такое словари в Python?**

Словари в Python - это полезные структуры данных, представляющие собой хеш-таблицы, что позволяет эффективно и быстро извлекать данные. Они состоят из пар `ключ:значение`, что дает возможность искать ключ и возвращать его значение. Словари создаются с помощью фигурных скобок, `{}`. Ключи должны быть неизменяемыми и уникальными, а значения могут быть любого типа данных (включая другие словари) и не обязательно уникальными.

Оглавление

* [Добавьте элемент в словарь Python](#dobavte-element-v-slovar-python)
* [Обновление элемента в словаре Python](#obnovlenie-elementa-v-slovare-python)
* [Добавление нескольких элементов в словарь Python с помощью цикла For](#dobavlenie-neskolkikh-elementov-v-slovar-python-s-pomoshyu-cikla-for)
* [Добавьте несколько элементов в словарь Python с помощью Zip](#dobavte-neskolko-elementov-v-slovar-python-s-pomoshyu-zip)
* [Заключение](#zaklyuchenie)
* [Дополнительные ресурсы](#dopolnitelnye-resursy)

### Добавьте элемент в словарь Python

Самый простой способ добавить элемент в словарь Python — просто присвоить значение новому ключу. У словарей Python нет метода для добавления новой пары ключ:значение. Поэтому прямое присвоение является основным способом добавления новых элементов в словарь.

Давайте рассмотрим, как можно добавить элемент в словарь:

```python
# Добавление элемента в словарь Python
dictionary = {'Nik': 32, 'Kate': 32, 'Jane': 41, 'Doug': 23}

dictionary['Evan'] = 30
print(dictionary)

# Возвращает: {'Nik': 32, 'Kate': 32, 'Jane': 41, 'Doug': 23, 'Evan': 30}
```

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

**Что можно использовать в качестве ключей словаря?**

Важно отметить, что в качестве ключей словаря в Python можно использовать множество различных элементов. Например, мы можем использовать строки, целые числа, кортежи – любые *неизменяемые* элементы, которые еще не существуют. Однако мы не можем использовать изменяемые элементы (такие как списки) в качестве ключей словаря.

В следующем разделе вы узнаете, как использовать прямое присваивание для обновления элемента в словаре Python.

### Обновление элемента в словаре Python

Python-словарям требуются уникальные ключи. Из-за этого, когда мы пытаемся добавить пару ключ:значение в словарь, где этот ключ уже существует, Python *обновляет* словарь. Это может быть не сразу очевидно, особенно потому, что Python не выдает ошибку.

Посмотрим, как это будет выглядеть, когда мы добавим пару ключ:значение в словарь, где ключ уже существует:

```python
# Обновление элемента в словаре Python
dictionary = {'Nik': 32, 'Kate': 32, 'Jane': 41, 'Doug': 23}

dictionary['Nik'] = 30
print(dictionary)

# Возвращает: {'Nik': 30, 'Kate': 32, 'Jane': 41, 'Doug': 23}
```

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

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

### Добавление нескольких элементов в словарь Python с помощью цикла For

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

Давайте посмотрим, как мы можем пробежаться по двум спискам, чтобы создать словарь:

```python
# Итерация по двум спискам для создания словаря
keys = ['Nik', 'Kate', 'Jane']
values = [32, 31, 30]
dictionary = {}

for i in range(len(keys)):
    dictionary[keys[i]] = values[i]

print(dictionary)

# Возвращает: {'Nik': 32, 'Kate': 31, 'Jane': 30}
```

Здесь мы перебираем каждое значение от 0 до длины списка минус 1, чтобы получить доступ к индексам наших списков. Затем мы обращаемся к i-му индексу каждого списка и назначаем их ключам и значениям наших списков.

На самом деле, есть гораздо более простой способ сделать это – использовать функцию `zip` в Python, о которой вы узнаете в следующем разделе.

### Добавьте несколько элементов в словарь Python с помощью Zip

Функция Python `zip()` позволяет [итерировать по двум итерируемым объектам одновременно](https://datagy.io/python-zip-lists/). Это избавляет нас от необходимости использовать неудобную функцию `range()` для доступа к индексам элементов в списках.

Посмотрим, как это выглядит на Python:

```python
# Итерация по двум спискам для создания словаря, используя zip
keys = ['Nik', 'Kate', 'Jane']
values = [32, 31, 30]
dictionary = {}

for key, value in zip(keys, values):
    dictionary[key] = value

print(dictionary)

# Возвращает: {'Nik': 32, 'Kate': 31, 'Jane': 30}
```

Преимущество этого подхода заключается в его большей читаемости. Индексы Python могут быть сложны для начинающих разработчиков. Функция zip позволяет легко понимать, что происходит в коде. Мы можем использовать функцию zip для именования элементов итератора, а также для простого объединения двух списков в словарь.

Если вы работаете с уже существующим словарем, Python просто обновит значение существующего ключа. Поскольку списки в Python могут содержать повторяющиеся значения, важно понять это поведение. Это часто может приводить к непредсказуемым результатам, так как программа не выдает ошибку.

### Заключение

В этом руководстве вы узнали, как использовать Python для добавления элементов в словарь. Вы научились делать это с помощью прямого присваивания, которое можно использовать для добавления новых элементов или обновления существующих. Затем вы также узнали, как добавлять несколько элементов в словарь, используя циклы for и функцию zip.

Чтобы узнать больше о словарях Python, ознакомьтесь с [официальной документацией здесь](https://docs.python.org/3/tutorial/datastructures.html).

### Дополнительные ресурсы

Чтобы узнать больше о связанных темах, ознакомьтесь со статьями ниже:

* Python: Pretty Print a Dict (словарь) – 4 способа
* Python: проверьте, пуст ли словарь (5 способов!)
* Python: проверьте, существует ли ключ (или значение) в словаре (5 простых способов)
* Python: удалить ключ из словаря (4 разных способа)
* Объединение словарей Python – 4 разных способа
