想要遍历一个字典,当满足条件时把这个元素删除。
b= {'数学': 95, '语文': 89, '英语': 90}
for i in b.keys():
if i == '数学':
del b[i]
print(b)
报错:RuntimeError: dictionary changed size during iteration
原因:遍历时不能改变字典长度
方法:修改遍历对象为列表,遍历列表可以改变列表长度
a = {'数学': 95, '语文': 89, '英语': 90}
for i in list(a.keys()):
if i == '数学':
del a[i]
print(a)
输出:{'语文': 89, '英语': 90}
在循环内通过list(a.keys())把a转化为列表,循环结束后a仍然是列表