python2
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轉換生成一個獨立的列表