Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 3.x 如何使两个列表在python3中不共享其值_Python 3.x - Fatal编程技术网

Python 3.x 如何使两个列表在python3中不共享其值

Python 3.x 如何使两个列表在python3中不共享其值,python-3.x,Python 3.x,在运行下面的代码之后 a = ['x', 'y', 'z'] b = a c = a t = 'A' b[0] = t + c[0] b是['Ax','y','z'],c也是['Ax','y','z'] 我怎样才能使两个列表不共享它们的值呢?您需要复制a,否则您只是说b指向与a相同的对象,而c指向相同的对象。你可以用两种方法来做 b=a.copy c=list(a) 编辑:为您提供更多详细信息。在python中,当您使用等号将变量分配给对象时,就像在该对象上粘贴带有变量名的便笺一样。您创建

在运行下面的代码之后

a = ['x', 'y', 'z']
b = a
c = a
t = 'A'

b[0] = t + c[0]
b是['Ax','y','z'],c也是['Ax','y','z']


我怎样才能使两个列表不共享它们的值呢?

您需要复制a,否则您只是说b指向与a相同的对象,而c指向相同的对象。你可以用两种方法来做

b=a.copy
c=list(a)
编辑:为您提供更多详细信息。在python中,当您使用等号将变量分配给对象时,就像在该对象上粘贴带有变量名的便笺一样。您创建了一个列表对象,并将名称“a”粘贴到该对象上。然后将名称“b”和“c”粘贴到同一个对象上。在本例中,基本上只有一个列表对象,它只有三个名称。复制方法创建与第一个对象相同的第二个对象。list函数返回一个新列表。如果你给它一个列表作为输入,它本质上只是复制的另一种方式

值得注意的是,如果列表包含其他对象,例如列表列表,则不会复制这些对象。为此,您应该使用deepcopy