Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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 - Fatal编程技术网

Python 是否仅删除给定列表中的元素?

Python 是否仅删除给定列表中的元素?,python,list,Python,List,这方面的新功能:在不绑定两个列表中的元素的情况下,将(数字)元素从一个列表复制到另一个列表的最佳方法是什么?例如: A=[[6,2,-1],[9,-2,3]] B=A[0] del B[0] 还将A设置为[[2,-1],[9,-2,3],即使我希望A保持不变。将B初始化为列表,并使用.append()而不是=/code> A=[[6,2,-1],[9,-2,3]] B = [] B.append(A[0]) 有关更多详细信息,请参见本文,其要点是使用=复制指向内存中列表的指针。而使用appe

这方面的新功能:在不绑定两个列表中的元素的情况下,将(数字)元素从一个列表复制到另一个列表的最佳方法是什么?例如:

A=[[6,2,-1],[9,-2,3]]
B=A[0]
del B[0]

还将
A
设置为
[[2,-1],[9,-2,3]
,即使我希望
A
保持不变。

B
初始化为列表,并使用
.append()
而不是
=/code>

A=[[6,2,-1],[9,-2,3]]
B = []
B.append(A[0])

有关更多详细信息,请参见本文,其要点是使用
=
复制指向内存中列表的指针。而使用
append
可确保复制的是列表中包含的数据,而不是列表指针本身。

问题在于,通过这样做

B=A[0]
您只需再次引用A列表

你可能想复制一份清单,比如

B=list(A[0])
如果事例列表中也包含需要复制的对象,则需要深度复制整个列表

import copy
B = copy.deepcopy(A[0])

但是整数不需要这个

您的代码将
B
作为对
a
中第一项的引用。这是一个问题,因为
a
中的第一项是一个可变对象,即列表。您要做的是将
A[0]
的元素复制到一个新列表中,您将称之为
B

b = a[0][:] # lowercase variable names according to PEP8

请注意,这仍然只对
a[0]
中的项目进行排序。这将适用于您的情况,因为您已经说过这些元素是数字的,这意味着它们是不可变的。但是,如果
a[0]
中包含更多嵌套列表,或者其他可变对象而不是数字,那么以后可能会出现同样的问题,再往下一层。请注意您需要全新对象的地方,以及引用足够的地方。

这看起来像Python,但为了清晰起见,请格式化您的代码并标记您的问题,好吗?可能会重复Um<代码>B=[A[0]]
(与您正在做的相同)