py在遍历字典的时候,一般的有涉及到满足条件则删除该元素
办法1:
a = {"a": "1", "b": "2"}
for k,v in a.items():
if k == "b":
del a[k]
print a
# {'a': '1'}
办法2:
a = {"a": "1", "b": "2"}
f = filter(lambda i: i[0] != "b" , a.items())
print f
# [('a', '1')]
print a
#{'a': '1', 'b': '2'}
错误的用法是用迭代器遍历的时候删除如:
>>> a = {"a": "1", "b": "2"}
>>> for i in a:
del a[i]
Traceback (most recent call last):
File "<pyshell#50>", line 1, in <module>
for i in a:
RuntimeError: dictionary changed size during iteration