我正在使用词典列表。我编写了一些代码来迭代这个列表并删除项目,如果它们满足某个条件。
看起来很简单,所以当我的代码没有按预期工作时,我感到非常惊讶。我能够在更简单的代码示例中复制这种奇怪的行为:
testList = [
{'test': 1, 'test2': 2},
{'test': 3, 'test2': 4},
{'test': 5, 'test2': 6},
{'test': 7, 'test2': 8},
{'test': 9, 'test2': 10},
{'test': 11, 'test2': 12},
]
i = 1
for item in testList:
if i == 1:
testList.remove(item)
print(testList)
返回以下内容:
[{'test2': 4, 'test': 3}, {'test2': 8, 'test': 7}, {'test2': 12, 'test': 11}]
当然,我期待一个空列表......有趣的是,它总是包含在此列表中的相同词典。
我能够通过使用逆向条件并将项目附加到新列表来创建新列表,因此我不是在寻找解决方法。我希望对这种行为有所了解,因为根据我目前对python的工作知识,这对我没有任何意义。