python 淺複製、深複製坑

Nolca發表於2024-10-23

今天在寫python指令碼,發現

I=[[0,0],[0,0]]
a=I.copy()
a[0][0]=1
print(a,I)

結果:

[[1, 0], [0, 0]] [[1, 0], [0, 0]]

因為copy()複製得還不夠深

解決方法

  1. import copy
import copy
a = copy.deepcopy(I)
  1. 建構函式
    不想在blender的python內匯入外部包,所以直接:
def gen_Unit_Matrix(length):
	return [[1 if i==j else 0 for i in range(length)] for j in range(length)]

相關文章