Задать вопрос
@pivazik

Как переместить словарь в другой словарь?

Как можно переместить все значения словаря в другой(новый) словарь.
1 = {1: "один", 2: "два"}
2 = {}
#код...
2 = {1: "один", 2: "два"}
  • Вопрос задан
  • 2600 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@StudMG
Есть 2 способа.
Если есть надобность просто скопировать значения одного словаря с другого простое присваивание одного имени к другому не подойдет.
dict1 = {1: "один", 2: "два"}
dict2 = dict1  # Так делать НЕЛЬЗЯ!

Это просто передаст ссылку на первый объект словаря и любые изменения во втором будут изменять первый словарь так же. По сути ты просто переименуешь его.

Делается это так:
dict1 = {1: "один", 2: "два"}
dict2 = dict1.copy()  # Так делать ПРАВИЛЬНО!

Тут мы создаем копию словаря и присваиваем объекту имя dict2.

Второй способ:
Если нужно как то при это обработать значения которые мы переносим в другой словарь можно применить итерацию:
dict1 = {1: "один", 2: "два"}
dict2 = {}
for key in dict1:
    dict2[key] = dict1[key]

Либо другой способ цикла:
dict1 = {1: "один", 2: "два"}
dict2 = {}
for key, item in dict1.items():
    dict2[key] = item


Тогда мы можем как то обработать наши значения которые присваиваем новому словарю прямо в момент записи, например умножить
dict1 = {1: "один", 2: "два"}
dict2 = {}
for keys in dict1:
    dict2[keys] = dict1[keys] * 2
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@EzikBro
У словарей есть метод update, который добавляет новые значения в словарь и перезаписывает старые:
dict1 = {1: 'one', 2: 'two'}
dict2 = {3: 'three'}
dict2.update(dict1)
dict2
>> {3: 'three', 1: 'one', 2: 'two'}

a = {1: 111, 2: 222, 3: 333}
b = {1: 444, 2: 555, 4: 666, 5: 777}
b.update(a)
b
>> {1: 111, 2: 222, 4: 666, 5: 777, 3: 333}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы