Sobes.tech
Middle+

Pověz mi o modulu copy v Pythonu. Jaký je rozdíl mezi copy a deepcopy?

sobes.tech AI

Odpověď od AI

Modul copy v Pythonu poskytuje funkce pro vytváření kopií objektů. Hlavní funkce:

  • copy.copy(obj) — povrchová kopie.
  • copy.deepcopy(obj) — hluboká kopie.

Rozdíl mezi copy a deepcopy:

  • Povrchová kopie vytvoří nový objekt, ale vnořené objekty uvnitř nejsou kopírovány, pouze odkazují na stejné objekty jako v originálu.
  • Hluboká kopie rekurzivně kopíruje všechny vnořené objekty, čímž vytváří plně nezávislou kopii.

Příklad:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'změněno'

print(shallow)  # [1, ['změněno', 3]] — vnořený seznam se změnil
print(deep)     # [1, [2, 3]] — hluboká kopie se nezměnila