blog.furas.pl
# prywatne notatki - Python, Linux, Machine Learning, etc.

Prosty przykład robienia kopii listy i bardziej złożonej obiektu w Pythonie

To jest „przedruk” mojej wypowiedzi na polskim forum Pythona http://pl.python.org/forum/index.php?topic=4366.msg18798#msg18798


Jeśli poniższa konstrukcja ma służyć do stworzenia kopii listy

list_of_words = []
for row in main_list:
    list_of_words.append(row)

to jest do tego specjalna konstrukcja

list_of_words = main_list[:]

a jak potrzebujesz zrobić kopię czegoś bardziej złożonego to szukaj funkcji copy i deepcopy w bibliotece copy

import copy

a = ['a', 'b', 'c' ]

b = a
c = copy.copy(a)

a[0] ='xxx'

print a #  ['xxx', 'b', 'c' ]
print b #  ['xxx', 'b', 'c' ]
print c #  ['a'  , 'b', 'c' ]

.

import copy

a = ['a', ['b', ['c']]]

b = a
c = copy.copy(a)
d = copy.deepcopy(a)

a[0] ='xxx'
a[1][0] = 'yyyy'

print a #  ['xxx', ['yyy', ['c']]]
print b #  ['xxx', ['yyy', ['c']]]
print c #  ['a'  , ['yyy', ['c']]]
print d #  ['a'  , ['b'  , ['c']]]
Książki: python-dla-kazdego-podstawy-programowania python-wprowadzenie python-leksykon-kieszonkowy python-receptury python-programuj-szybko-i-wydajnie python-projekty-do-wykorzystania black-hat-python-jezyk-python-dla-hackerow-i-pentesterow efektywny-python-59-sposobow-na-lepszy-kod tdd-w-praktyce-niezawodny-kod-w-jezyku-python aplikacje-internetowe-z-django-najlepsze-receptury