Форум сайта python.su
568
dimy44Стандартный питонячий приём из учебника гораздо проще
глубокую копию списка позволяет делать метод copy.deepcopy(list) модуля copy
a = [1, 2, 3] b = a[:]
Офлайн
221
FishHook
речь идет о глубокой копии, а этот прием не даст такого:
>>> a=[1, ... 2, ... ['q','w','e'], ... 4, ... {'1':[10,20,30]}] >>> b=a[:] >>> c=deepcopy(a) >>> print '{}\n{}\n{}'.format(a,b,c) [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] >>> a[0]=-1 >>> print '{}\n{}\n{}'.format(a,b,c) [-1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}] >>> a[2][0]='Q' >>> print '{}\n{}\n{}'.format(a,b,c) [-1, 2, ['Q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['Q', 'w', 'e'], 4, {'1': [10, 20, 30]}] [1, 2, ['q', 'w', 'e'], 4, {'1': [10, 20, 30]}]
Офлайн
221
mojahed
про основоположников: это базовые понятия Питона о неизменяемых и изменяемых типах данных. в частности к вопросу о составных (читай вложенных) структурах
Офлайн
0
Осознал. Благодарю dimy44, PanovSergey и JOHN_16
за отзывчивость и наводку. Мои списки 2х уровневые и потому кроме copy.deepcopy(list) ничего не годится. Про это все неплохо с картинками http://www.python-course.eu/deep_copy.php. Жаль авторы не пишут по русски. Так что, про “ о составных (читай вложенных) структурах” до меня дошло.
Офлайн
857
FishHookгде-то тут уже обсуждали, почему он даёт только один слой
Стандартный питонячий приём из учебника гораздо проще
Офлайн