在字典列表上使用.remove()

时间:2017-12-22 20:43:19

标签: python python-3.x list dictionary

我正在使用词典列表。我编写了一些代码来迭代这个列表并删除项目,如果它们满足某个条件。

看起来很简单,所以当我的代码没有按预期工作时,我感到非常惊讶。我能够在更简单的代码示例中复制这种奇怪的行为:

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的工作知识,这对我没有任何意义。

0 个答案:

没有答案