I eksempel 1 i artikkelen om lister som inneholder lister har vi ei liste som inneholder tre andre lister:
grader = [[12, 10, 14, 7, 8, 11, 10], [10, 7, 9, 6, 6, 8, 15], [10, 5, 3, 6, 4, 3, 2]]
I Python Tutor ser det slik ut:

Så skriver vi
grader_kopi = grader
Som vi ser i artikkelen om å kopiere lister, blir da grader_kopi bare en ny referanse til samme liste:

Men som vi også ser i i artikkelen om å kopiere lister, hvis vi skriver
grader_kopi = grader[:]
eller
grader_kopi = grader.copy()
blir grader_kopi ei ny liste:

Imidlertid ser vi at de tre listene inni grader ikke er blitt kopiert. grader_kopi er blitt ei ny liste, men den refererer til de samme tre listene som grader. Denne måten å kopiere lister på gir nemlig bare det vi kaller grunn kopiering. Selve lista grader blir kopiert, men ikke listene den refererer til.
Det motsatte av grunn kopiering er dyp kopiering. Da kopieres også listene det refereres til, ikke bare det øverste nivået. For å utføre dyp kopiering kan vi bruke funksjonen deepcopy() fra modulen copy. Hvis vi skriver
from copy import deepcopy grader_kopi = deepcopy(grader)
ser resultatet slik ut:

Nå har vi også fått kopier av de tre listene inni grader.
Kilder
-
- Sweigart A. (2021). Beyond the basic stuff with Python. no starch press