python2
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,
互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
data_info = {
'account': 1,
'remark': 2,
'sort': '',
'weight': '',
}
for key in data_info.keys():
if not data_info.get(key):
del data_info[key]
python3
data_info = {
'account': 1,
'remark': 2,
'sort': '',
'weight': '',
}
for key in list(data_info.keys()):
if not data_info.get(key):
del data_info[key]
原因
只是在for循环中,相当于对链表的操作,它会自动调用next方法! 字典的迭代器会遍历它的键,在这个过程中,不能改变这个字典!不能删除、添加数据 要先记录要删除的元素的索引,遍历完后再删除,data_info.keys()在python2中是一个独立的列表,python3中是迭代器,需要我们list转换生成一个独立的列表