Oglejmo si ta primer:
>>> a = [1, 2, 3] >>> b = a >>> a[1] = 7 >>> a [1, 7, 3]
Povsem pričakovano, kajne? Ko izpišemo še tabelo b, pa nas python preseneti:
>>> b [1, 7, 3]
Kako lahko sprememba tabele a vpliva na tabelo b? Pričakovali bi, da stavek b = a ustvari novo tabelo b in vanjo skopira elemente tabele a. Vendar pa se to ne zgodi. Spremenljivka a namreč ne vsebuje celotne tabele a, pač pa zgolj njen pomnilniški naslov, torej mesto, kjer se tabela nahaja v računalnikovem pomnilniku. Pravimo, da je spremenljivka a zgolj kazalec na tabelo [1, 2, 3]b = a, se v spremenljivko b skopira samo pomnilniški naslov. Sedaj imamo torej dve spremenljivki, ki kažeta na isto tabelo:
Prireditev a[1] = 7 nastavi drugi element tabele na vrednost 7:
Kako pa tabelo dejansko kopiramo (podvojimo)? Z izrazom tabela[:]:
>>> a = [1, 2, 3] >>> b = a[:] >>> a[1] = 7 >>> a [1, 7, 3] >>> b [1, 2, 3]
Sedaj imamo ločeni tabeli, na kateri kažeta spremenljivki a in b:
Pri preprostih podatkovnih tipih, kot so cela in realna števila, teh težav nimamo. Preizkusi sam(-a)!