Код: Выделить всё
# initialization
O1 = [[] for g in range(n)]
for i in range(n):
O1[i] = [[] for g in range(m)]
O2 = [[] for g in range(n)]
for i in range(n):
O2[i] = [[] for g in range(m)]
Код: Выделить всё
for i in range(n):
for j in range(m):
O1[i][j].append([s, as, pat, 0])
O2[i][j].append([[ol, oa, os, ot],[dl, da, ds],tpat, tp, 0])
Использование .deepcopy() является Единственный известный мне способ, но поскольку это итеративный процесс, функция .deepcopy() значительно замедляет код, особенно когда O1 и O2 большие. Я пробовал использовать кортежи в качестве неизменяемой структуры данных, но, учитывая исходную и внутреннюю структуру, а также изменения, внесенные в функции, это не работает. использование кортежей предотвращает изменения в методах Append() и Remove(), но не в операциях +/-.
Я был бы признателен, если бы кто-нибудь предложил более быстрый способ сделать это.
Подробнее здесь: https://stackoverflow.com/questions/790 ... g-deepcopy