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我搜索过,但意见不同,这就是为什么我想从专家那里得到一些解释。谢谢你的评论。与标题相反,你迭代的列表不是你修改的列表,所以没关系。你的修改不会改变确定外部列表的长度