我天真地用:
for k, v in dictionary.items():
if foo(v):
del dictionary[k]
但是,当我在迭代字典时编辑字典大小时,这将导致迭代器异常。那我怎么做呢?-尤其是,在不复制词典的情况下,复制方法:
copydict = dict(dictionary)
for k, v in copydict.items():
if foo(v):
del dictionary[k]
我想看看python如何在不使用显式迭代器的情况下进行这种就地编辑。你知道吗
Tags:
找到要删除的所有密钥,然后在以下时间之后删除:
下面是上一个堆栈溢出问题的答案:Modifying a Python dict while iterating over it
dictionary.items()
返回一个不能修改的视图 但是,如果您在list(dictionary.items())
上进行迭代,您可以修改字典,而不会出现迭代器异常的风险。你知道吗相关问题 更多 >
编程相关推荐