YOU’RE LEARNING TO↗distinguish assignment (no copy) from shallow copy from deep copy
↗predict which parts of a nested structure are shared after a shallow copy
↗use the copy module correctly, including copy.copy() and copy.deepcopy()
↗implement __copy__ and __deepcopy__ for custom classes
↗choose the right copying strategy for a given situation