python学习:字典
学习问题:如何删除字典中的一类元素
题目:删除字典friends中年龄大于23的friend
一个个删除明显达不到考察的目的,所以刚开始我的想法是:利用循环遍历字典中的数值进行判断
friends = {
'jialiang':23,
'wangChen':24,
'jiaMing':22,
'wangJie':22,
'yuQing':24,
'wenZhen':23,
'haoNan':25,
'luYi':23,
'boWen':23,
}
for n,y in friends.items(): #先用循环遍历字典
if y >= 23: #再用一个if来判断年龄大小
del friends[n] #接着删除符合年龄段的朋友
else:
print(f'{n}:{y}') #再一个个输出
然而程序出现错误
File "D:\pycharm\PyCharm Community Edition 2022.2.2\pythonProject\prctise.py", line 12, in <module>
for n,y in friends.items():
RuntimeError: dictionary changed size during iteration
发现在for循环中不能改变字典
于是通过学习了两种解法:
1.通过列表
sc = [] #创建一个空的列表
for n,y in friends.items():
if y >= 23:
sc.append(n) #将符合条件的y对应的n加入列表中
for a in sc: #再遍历列表
del friends[a] #此时便可以对字典进行删除
2.通过新字典
(1)删除
t = friends
for n,y in friends.items():
if y >= 23:
del t[n]
friends = t
通过创建新字典,将旧字典赋值给字典,在遍历旧字典是对新字典进行删除,最后将新字典的新值赋给旧字典,就达到了对旧字典的删除。
(2)添加
t = {}
for n,y in friends.item():
if y < 23:
t[n] = y
friends = t
同样创建一个字典,只不过变成了加入元素,而不是删除。
标签:遍历,删除,23,python,items,笔记,friends,字典 From: https://www.cnblogs.com/102204216zxf/p/16736399.html