|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
||||||
Как создать копию объекта06.06.2016, 19:52. Показов 6640. Ответов 16
Метки нет (Все метки)
Не могу найти ни в документации ни в других местах
как можно создать копию (независимую) объекта, а как ссылку на объект метод проведения эксперементов "пальцем в небо" не дал результатов т.е. есть list или любой другой тип и создаем точную копию, а не ссылку на него. чтоб работало делаю так:
0
|
||||||
| 06.06.2016, 19:52 | |
|
Ответы с готовыми решениями:
16
Python - не могу создать резервную копию
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
||||||
| 06.06.2016, 19:58 | ||||||
1
|
||||||
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.06.2016, 08:35 | |
|
Только это поверхностное копирование и так вложенные списки словари и т д не будет скопированы.
0
|
|
|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
|
| 07.06.2016, 10:00 [ТС] | |
|
та да, так только "внешний" список новый.
жаль, что приходится пользоваться дополнительными алгоритмами, а по умолчанию это ссылки
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.06.2016, 10:43 | |
|
За счет ссылок все работает быстрее и ни каких проблем это не вызывает.
Если у тебя есть какие-то проблемы с этим, то скорее всего они только из-за недопонимания базовых вещей.
0
|
|
|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
|
| 07.06.2016, 14:07 [ТС] | |
|
да, возможно, я изначально инженер механик
но часто мне нужна именно новая копия, которая будет работать независимо... чаще чем ссылка
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.06.2016, 15:28 | |
|
father_igni, для чего, аргументируй, где тебе шибко сильно мешает, что список может измениться?
И вообще если уж пошло на то, что нужен не изменяемый объект, то используй кортежи.
0
|
|
|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
|
| 07.06.2016, 16:33 [ТС] | |
|
Я такого не говорил
![]() Я говорил, что мне нужно создать отдельный объект идентичный (на момент создания) данному, который далее живет отдельной жизнью, а не изменяется в соответствии с оригиналом, и тут не важно, список это кортеж или еще что нибудь. Например направленный граф описан двумя dictionary (не знаю как по русски, стараюсь читать буржуйскую литературу) один - вход, другой - выход (да избыточно, но пусть будет) Надо в граф добавлять/удалять узлы и связи, у нас ключ - узел, связи - список значений тех же узлов. Удаляя узел, надо удалить все связи к нему ведущие. Причем в первую очередь в списках других узлов. и вот тут нам и нужен перечень узлов которые имеют связи с данным (который мы удаляем), не перебором же пробегаться по всем узлам... И вот баг с котором я долго тупил, как раз был в ссылке, а не отдельном перечне, т.е. список менялся по мере удаления связей и это было печально
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 07.06.2016, 16:57 | |
|
Не вижу в решении этой задачи ни каких проблем.
0
|
|
|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
|
| 07.06.2016, 16:59 [ТС] | |
|
подскажите?
0
|
|
|
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
|
||||||
| 07.06.2016, 18:15 | ||||||
0
|
||||||
|
1 / 1 / 1
Регистрация: 08.03.2015
Сообщений: 127
|
|
| 07.06.2016, 18:27 [ТС] | |
|
да, но нет...
я примерно так и думал написать изначально
0
|
|
|
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 5
|
|
| 13.06.2016, 19:15 | |
|
>>> d_orig = {0: 1, 1: 2}
>>> d_orig {0: 1, 1: 2} >>> d_copy = d_orig.copy() >>> d_copy {0: 1, 1: 2} >>> d_copy[1] = 5 >>> d_copy {0: 1, 1: 5} >>> d_orig {0: 1, 1: 2}
0
|
|
|
440 / 432 / 159
Регистрация: 21.05.2016
Сообщений: 1,338
|
||
| 14.06.2016, 06:55 | ||
|
>>> d_copy = d_orig.copy() >>> d_orig[2][3] = 7 >>> d_copy {0: 1, 1: 2, 2: {3: 7, 4: 4}}
0
|
||
|
0 / 0 / 0
Регистрация: 05.06.2016
Сообщений: 5
|
|
| 14.06.2016, 13:02 | |
|
тогда, если это будет лучше:
>>> import copy >>> d_orig = {0: 1, 1: 2, 2:{3:1,4:4}} >>> d_orig {0: 1, 1: 2, 2: {3: 1, 4: 4}} >>> d_copy = copy.deepcopy(d_orig) >>> d_copy {0: 1, 1: 2, 2: {3: 1, 4: 4}} >>> d_orig[2][3] = 7 >>> d_orig {0: 1, 1: 2, 2: {3: 7, 4: 4}} >>> d_copy {0: 1, 1: 2, 2: {3: 1, 4: 4}}
0
|
|
|
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
|
|
| 14.06.2016, 13:04 | |
|
craneua, а об этом сказано ещё в самом начале поста и код нужно в теги вставлять.
0
|
|
| 14.06.2016, 13:04 | |
|
Помогаю со студенческими работами здесь
17
Как проще всего создать копию многомерного списка в Python 3? Как создать копию объекта? Как создать копию (клон) объекта? Как создать копию объекта любого класса? Как создать копию объекта, зная его указатель? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|