Python

Метод копирования словаря Python() [With Examples]

В этой статье мы обсудим Метод копирования словаря Python (). В дополнение к этому мы обсудим синтаксис, использование и примеры метода copy().

Метод словаря copy() в Python

Ниже приведены темы, которые мы собираемся обсудить в этой статье:

  • Введение в метод copy() словаря Python
  • Синтаксис метода copy()
  • Ограничения метода copy()
  • Примеры метода copy()

Метод копирования словаря Python()

Прежде чем погрузиться в Метод копирования словаря Python(), важно понимать концепцию неглубоких копий. Неглубокая копия — это новый объект, являющийся копией исходного объекта с новой ссылкой.

Это называется “мелкий” потому что он создает новую ссылку только на исходный объект, а не на объекты внутри исходного объекта.

метод копирования словаря ()

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

copied_dictionary = original_dictionary.copy()

Метод copy() в примерах словаря Python

Давайте рассмотрим несколько примеров, чтобы лучше понять метод copy() в действии:

Пример №1 Основное использование

# Creating an original dictionary
original_dictionary = {"name": "John", "age": 30, "city": "New York"}

# Creating a shallow copy using the copy() method
copied_dictionary = original_dictionary.copy()

print("Original Dictionary:", original_dictionary)
print("Copied Dictionary:", copied_dictionary)

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

Выход:

Метод копирования словаря в Python
Метод копирования словаря в Python

Example#2 Поверхностное копирование с вложенными изменяемыми объектами

# Importing the copy module for deep copy
import copy

# Creating an original dictionary with nested mutable objects
original_dictionary = {
    "name": "Alice",
    "age": 28,
    "hobbies": ["reading", "travelling"],
    "address": {"city": "San Francisco", "state": "California"}
}

# Creating a shallow copy using the copy() method
shallow_copied_dictionary = original_dictionary.copy()

# Modifying the copied dictionary
shallow_copied_dictionary["age"] = 29
shallow_copied_dictionary["hobbies"].append("cooking")
shallow_copied_dictionary["address"]["city"] = "Los Angeles"

print("Original Dictionary:", original_dictionary)
print("Shallow Copied Dictionary:", shallow_copied_dictionary)
  • В этом примере мы создаем словарь Python, который включает вложенные изменяемые объекты. Словарь содержит такие ключи, как "name", "age", "hobbies", and "address". Значение для "hobbies" представляет собой список Python (который является изменяемым), а значение для "address" — еще один словарь Python (также изменяемый).
  • Затем мы создаем неглубокую копию исходного словаря Python, используя метод копирования(). Это создает новый словарь Python, который ссылается на те же объекты, что и исходный словарь.
  • Когда мы изменяем скопированный словарь "age" ключ, это не влияет на исходный словарь Python, потому что значение "age" является целым числом, которое является неизменным.
  • Однако, когда мы модифицируем "hobbies" and "address" ключи, это также влияет на исходный словарь Python. Это связано с тем, что эти ключи указывают на изменяемые объекты (список и словарь), а исходный и скопированный словари Python ссылаются на одни и те же объекты.

Выход:

Метод копирования словаря в примере Python
Метод копирования словаря в примере Python

Итак, мы пришли к выводу, что Копия словаря Python() метод имеет ограничение.

Ограничения метода copy()

Основное ограничение Метод копирования словаря Python() заключается в том, что он создает поверхностные копии. Если наш словарь Python содержит изменяемые объекты, такие как списки или другие словари, метод копирования() не будет создавать независимые копии этих объектов.

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

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

import copy

deep_copied_dictionary = copy.deepcopy(original_dictionary)

Заключение

Метод копирования словаря Python() — удобная встроенная функция для создания поверхностных копий словарей в Python. Это позволяет нам создать новый словарь с теми же парами ключ-значение, что и исходный, не затрагивая исходный словарь.

Однако имейте в виду, что он создает только поверхностные копии, что может привести к непреднамеренным побочным эффектам при работе с вложенными изменяемыми объектами Python.

Вы также можете прочитать следующие статьи:


Ссылка на источник

Похожие статьи

Кнопка «Наверх»