-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