0
我正在創建列表列表。當我選擇一個特定的索引時,它會同時設置多個列表條目。這裏發生了什麼?Python:奇怪列表索引行爲
x = []
for i in range(3,6+1,1):
x.append([['','']] * i)
x[0][0][0] = 1
for col in x:
print col
輸出:
[[1, ''], [1, ''], [1, '']]
[['', ''], ['', ''], ['', ''], ['', '']]
[['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
[['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
它仍然是一個懸而未決的問題,爲什麼不工作......這裏有一個解決方案,但...
x = []
for i in range(3,6+1,1):
y = ['','']
tmp = []
for j in range(i):
tmp.append(y[:])
x.append(tmp)
x[0][0][0] = 1
for col in x:
print col
輸出:
[[1, ''], ['', ''], ['', '']]
[['', ''], ['', ''], ['', ''], ['', '']]
[['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
[['', ''], ['', ''], ['', ''], ['', ''], ['', ''], ['', '']]
是啊...這不是一個相當不受歡迎的python特性嗎? –
如果你認爲它是複製指針列表(內部列表),那麼我認爲它更有意義...... – DNA