Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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_Python 2.7_List_Iteration - Fatal编程技术网

Python 在迭代列表时修改列表是否总是错误的?为什么?

Python 在迭代列表时修改列表是否总是错误的?为什么?,python,python-2.7,list,iteration,Python,Python 2.7,List,Iteration,我有一份包含我的数据的列表,格式如下: data = [[[1, 3, 4, 5, 7], [A, B, C]], [[2, 3, 8, 2, 9], [F, C, C]], [[6, 3, 1, 3, 1], [F, E, D]], [[2, 3, 7, 0, 3], [F, C, F]], ... [[0, 3, 3, 4, 5], [F, B, A]]] 在我的程序中,我会检查是否有一列具有固定值(如第

我有一份包含我的数据的列表,格式如下:

data = [[[1, 3, 4, 5, 7], [A, B, C]],
        [[2, 3, 8, 2, 9], [F, C, C]], 
        [[6, 3, 1, 3, 1], [F, E, D]], 
        [[2, 3, 7, 0, 3], [F, C, F]], 
        ...
        [[0, 3, 3, 4, 5], [F, B, A]]]
在我的程序中,我会检查是否有一列具有固定值(如第二列仅包含3个值)。如果找到,我应该将其从数据中删除。我们可以迭代列表并逐个元素删除此列的解决方案之一。使用以下代码:

for data_line in data:
    del data_line [0][1]
这是否正常?这是否会导致不稳定或任何其他问题? 请解释一下

提前谢谢

解决方案摘要

感谢所有对此问题做出贡献的人,总结以下宝贵贡献,我们可以说:


可以修改正在迭代的列表的内容,但不能删除其中的元素,也就是说,只要修改不改变主列表的长度,那么就没有问题。

可以在迭代时修改列表元素的属性,但不建议修改列表成员身份本身我们做前者,所以不用担心。

你有没有搜索过(比如在谷歌)在发布这个问题之前?我认为这没关系,因为你没有修改列表本身,而是修改了他的内容。@Stargateur我搜索过,但意见不同,这就是为什么我想从专家那里得到一些解释。谢谢你的评论。与标题相反,你迭代的列表不是你修改的列表,所以没关系。你的修改不会改变确定外部列表的长度