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

时间:2016-10-27 07:52:26

标签: 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]]]

在我的程序中,我会检查是否有一个具有固定值的列(如第二列只包含3个。如果找到,我应该从数据中删除它。我们可以迭代的一个解决方案列表并按元素删除此列。使用以下代码:

for data_line in data:
    del data_line [0][1]

这样可以吗?这会导致不稳定或任何其他问题吗? 请解释..

提前致谢

解决方案摘要

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

可以修改你在其上迭代的列表的内容,但不能删除它的元素,即修改不会改变MAIN列表长度的任何地方,那么没问题。

1 个答案:

答案 0 :(得分:6)

您可以在迭代时修改列表的元素的属性,但是修改列表成员资格本身是不明智的。你正在做前者,所以不用担心。