Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么要复制(列表、词汇表)_Python_List_Dictionary - Fatal编程技术网

Python 为什么要复制(列表、词汇表)

Python 为什么要复制(列表、词汇表),python,list,dictionary,Python,List,Dictionary,我告诉python将1添加到最后一个位置,但似乎每个元素都是相同的。您创建了一个对象,[0],并将该对象重复了10次。您的所有更改都在更改此单个对象。 相反,您应该创建10个不同的对象 >>> save = lambda : {'a':[[0]]*10} >>> s = save() >>> s {'a': [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]} >>> s['

我告诉python将1添加到最后一个位置,但似乎每个元素都是相同的。

您创建了一个对象,
[0]
,并将该对象重复了10次。您的所有更改都在更改此单个对象。
相反,您应该创建10个不同的对象

>>> save = lambda : {'a':[[0]]*10}
>>> s = save()
>>> s
{'a': [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]}
>>> s['a'][-1].append(1)
>>> s
{'a': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]}

您创建了一个对象,
[0]
,并将该对象重复了10次。您的所有更改都在更改此单个对象。
相反,您应该创建10个不同的对象

>>> save = lambda : {'a':[[0]]*10}
>>> s = save()
>>> s
{'a': [[0], [0], [0], [0], [0], [0], [0], [0], [0], [0]]}
>>> s['a'][-1].append(1)
>>> s
{'a': [[0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1], [0, 1]]}

'a'
是列表中包含零的同一列表的十倍。
'a'
是列表中包含零的同一列表的十倍。虽然此代码可能会解决OP的问题,但最好包含关于代码如何解决OP问题的解释。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或用源文档补充说明。您可以创建一个对象[0],然后重复此对象10次。您的所有更改都已更改此对象。你应该创建10个不同的对象。虽然这段代码可能会解决OP的问题,但最好包含一个解释,说明你的代码如何解决OP的问题。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或用源文档补充说明。您可以创建一个对象[0],然后重复此对象10次。您的所有更改都已更改此对象。您应该创建10个不同的对象。