如何在python中复制列表列表并将其附加到新列表中?

2024-06-01 02:35:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发一个函数,用python创建一个包含子列表的列表副本。然后,它应该将副本附加到一个名为new_puzzles的空列表中。但是当我调用这个函数时,我得到了很大的回报。下面是我的原始列表、当前代码和输出。任何帮助都将不胜感激

原始列表

[5,0,0,0,0,0,0,0,0,0,0],[0,9,0,0,0,0,0,0,8,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

代码

def copy_puzzle(puzzle):

new_puzzles = []
new_puzzles = puzzle.copy()

for i in range(len(puzzle)):
    new_puzzles.append(puzzle)

return new_puzzles

输出 [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0, 9, 0, 7, 0, 0, 8, 0, 0], [0, 0, 0, 0, 3, 0, 0, 7, 0], [6, 0, 1, 0, 0, 0, 9, 8, 0], [0, 0, 0, 6, 0, 0, 0, 0, 0], [0, 0, 9, 0, 0, 0, 7, 0, 1], [0, 0, 0, 0, 0, 8, 1, 9, 0], [0, 4, 0, 5, 0, 1, 0, 0, 8], [0, 7, 0, 3, 0, 6, 0, 4, 0]], [[5, 0, 0, 0, 0, 0, 0, 0, 0], [0,9,0,7,0,0,0,8,0,0,0],[0,0,0,0,0,0,0,0,0,9,8,0],[0,0,0,0,0,0,6,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,8,1,9,0],[0,4,0,5,0,1,0,0,0,0,0,0,6,0,4,0]]


Tags: 函数代码in列表newforlenreturn
2条回答

如果要将列表列表传递给函数,则无需复制该列表。如果要将给定列表附加到空列表,解决方案如下:

def copy_puzzle(puzzle):
    return [puzzle]

但是,我不确定这是否是所需的功能。正如Mureinik所说,预期的产出会有所帮助

我可能错了,但我认为可能是这样的:您正在使用for循环来循环列表的长度,不管它有多长。这可能会导致输出过长,因为您要将此列表附加到新列表x次。解决方案可以是删除for循环,并将列表附加到新列表中一次

解决方案:

def copy_puzzle(puzzle):
    new_puzzles = puzzle.copy()

    return new_puzzles

相关问题 更多 >