完美解决python遍历删除字典里值为空的元素报错问题


Posted in Python onSeptember 11, 2016

exam = { 'math': '95', 'eng': '96', 'chn': '90', 'phy': '', 'chem': '' }

使用下列遍历的方法删除:

1. for e in exam:
2. if exam[e] == '':
3. del exam[e]

结果出现下列错误,怎么解决:

Traceback (most recent call last):
 File "Untitled.py", line 3, in <module>
  for e in exam:
RuntimeError: dictionary changed size during iteration

正确做法:

1. s = {"1":a,"2":b,"3":c,"4":d,"5":e}
2. s_key = list(s.keys())
3. for k_s in s_key:

4.#比如我要删除第四个元素

5.del s["4"]

只是在for循环中,相当于对链表的操作,它会自动调用next方法!

字典的迭代器会遍历它的键,在这个过程中,不能改变这个字典!不能删除、添加数据

要先记录要删除的元素的索引,遍历完后再删除,exam.keys()返回的是一个独立的列表

以上这篇完美解决python遍历删除字典里值为空的元素报错问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
下载糗事百科的内容_python版
Dec 07 Python
python中的yield使用方法
Feb 11 Python
使用Python判断IP地址合法性的方法实例
Mar 13 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
详解Python中for循环的使用方法
May 14 Python
一篇文章快速了解Python的GIL
Jan 12 Python
利用python求积分的实例
Jul 03 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
如何将你的应用迁移到Python3的三个步骤
Dec 22 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Pycharm+Python工程,引用子模块的实现
Mar 09 Python
如何完美的建立一个python项目
Oct 09 Python
python 循环遍历字典元素的简单方法
Sep 11 #Python
遍历python字典几种方法总结(推荐)
Sep 11 #Python
python遍历 truple list dictionary的几种方法总结
Sep 11 #Python
浅谈python中的变量默认是什么类型
Sep 11 #Python
python中常用的九种预处理方法分享
Sep 11 #Python
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 #Python
python 打印对象的所有属性值的方法
Sep 11 #Python
You might like
php基础知识:函数基础知识
2006/12/13 PHP
FCKeditor添加自定义按钮
2008/03/27 PHP
php使用pdo连接并查询sql数据库的方法
2014/12/24 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
JS之小练习代码
2008/10/12 Javascript
jQuery拖动图片删除示例
2013/05/10 Javascript
动态加载dtree.js树treeview(示例代码)
2013/12/17 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
js获取隐藏元素的宽高
2017/02/24 Javascript
nodejs 图解express+supervisor+ejs的用法(推荐)
2017/09/08 NodeJs
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
vue实现简单跑马灯效果
2020/05/25 Javascript
Vue axios 跨域请求无法带上cookie的解决
2020/09/08 Javascript
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
[02:43]DOTA2亚洲邀请赛场馆攻略——带你走进东方体育中心
2018/03/19 DOTA
[06:45]2018DOTA2亚洲邀请赛 4.5 SOLO赛 Sccc vs Maybe
2018/04/06 DOTA
shell命令行,一键创建 python 模板文件脚本方法
2018/03/20 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
对python3 一组数值的归一化处理方法详解
2018/07/11 Python
python实现的Iou与Giou代码
2020/01/18 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
销售人员自我评价
2014/02/01 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
市场总监岗位职责
2015/02/11 职场文书
离婚起诉书范文2016
2015/11/26 职场文书
《中彩那天》教学反思
2016/02/24 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书