-2
將其視爲在數據庫表中創建行。 我有物品清單。我們稱它爲一排。其中之一也是名單。我需要建立從內部列表中包含每個元素多行,然後將它們添加到新的更大的名單(行):如果其中一個項目也是列表,那麼如何在單個列表中創建多個行
rows = []
row = [1, 2, [3, 4, 5]]
temp_row = None
for i, v in enumerate(row):
if isinstance(v, list):
print i, v
for j in v:
temp_row = row
temp_row[i] = j
print temp_row
rows.append(temp_row)
print rows
但輸出看起來像這樣:
2 [3, 4, 5]
[1, 2, 3]
[1, 2, 4]
[1, 2, 5]
[[1, 2, 5], [1, 2, 5], [1, 2, 5]]
你可以看到,在將行添加到行之前打印temp_row看起來是正確的。那麼爲什麼添加到最後一個數組的temp_rows不是?我試圖用字典解決它,但輸出是類似的。
你的預期輸出是什麼? (即你目前的我認爲) – smushi 2014-10-31 07:22:08
'temp_row = row' **不**創建副本。 – jonrsharpe 2014-10-31 08:20:02
期望的輸出是一個列表中的三個中間列表。像[[1,2,3],[1,2,4],[1,2,5]] – 2014-10-31 08:20:51