位置: 编程技术 - 正文

Python中遍历字典过程中更改元素导致异常的解决方法(Python中遍历字典)

编辑:rootadmin

推荐整理分享Python中遍历字典过程中更改元素导致异常的解决方法(Python中遍历字典),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python3遍历字典,python如何遍历字典的键值,python3遍历字典,Python中遍历字典,python中遍历字典中的所有键值对,Python中遍历字典,python中遍历字典中的所有键,Python中遍历字典,内容如对您有帮助,希望把文章链接给更多的朋友!

先来回顾一下Python中遍历字典的一些基本方法:脚本:

执行结果:

嗯,然后我们进入“正题”--

一段关于Python字典遍历的“争论”....先摘抄下:

其实这个问题本来很简单,就是说如果遍历一个字典,但是在遍历中改变了他,比如增删某个元素,就会导致遍历退出,并且抛出一个dictionary changed size during iteration的异常.解决方法是遍历字典键值,以字典键值为依据遍历,这样改变了value以后不会影响遍历继续。但是下面又有一位大神抛出高论:

Python中遍历字典过程中更改元素导致异常的解决方法(Python中遍历字典)

首先,python 是推荐使用迭代器的,也就是 for k in adict 形式。其次,在遍历中删除容器中的元素,在 C++ STL 和 Python 等库中,都是不推荐的,因为这种情况往往说明了你的设计方案有问题,所有都有特殊要求,对应到 python 中,就是要使用 adict.key() 做一个拷贝。最后,所有的 Python 容器都不承诺线程安全,你要多线程做这件事,本身就必须得加锁,这也说明了业务代码设计有问题的.

但由“遍历中删除特定元素”这种特例,得出“遍历dict的时候,养成使用 for k in d.keys() 的习惯”,我觉得有必要纠正一下。在普通的遍历中,应该使用 for k in adict。另外,对于“遍历中删除元素”这种需求,pythonic 的做法是 adict = {k, v for adict.iteritems() if v != 0} 或 alist = [i for i in alist if i != 0]

这个写法让我眼前一亮:怎么还有这个语法?再仔细一看,他可能是这个意思:

不知道对不对。因为这个写法一开始让我猛然想到三元操作符,仔细一看才发现不是,以前Goolge到有个解决方案

val>是个逻辑表达式,返回0或者1,刚好作为前面那个元组的ID来取值,实在是太妙了。。。不过在Google的资料里面还有一个版本

后来发帖在华蟒用户组(中文Python技术邮件列表)中提到后众多大神解答如下:

如果大于Python>=2.7还可以用这个写法:

python基于phantomjs实现导入图片 基于的phantomjs的自动化,会出现1.flash不支持2.部分基于view的按钮点不到,部分按钮是基于flash的(尤其是在于上传按钮)browser.find_element_by_xpath(".//*[@name='SW

Phantomjs抓取渲染JS后的网页(Python代码) 最近需要爬取某网站,无奈页面都是JS渲染后生成的,普通的爬虫框架搞不定,于是想到用Phantomjs搭一个代理。Python调用Phantomjs貌似没有现成的第三方库

python爬取job中hr的邮箱 本文实例为大家分享了python爬取job中hr的邮箱具体代码,供大家参考,具体内容如下#encoding=utf8importurllib2importcookielibimportreimportlxml.htmlfrom_astimportTryExcept

标签: Python中遍历字典

本文链接地址:https://www.jiuchutong.com/biancheng/386169.html 转载请保留说明!

上一篇:Python安装使用命令行交互模块pexpect的基础教程(python安装包的命令)

下一篇:python基于phantomjs实现导入图片(python基于django的项目)

  • 防伪税控风险纳税人财务负责人和法人同一人
  • 所得税汇算清缴后发现有误怎么办
  • 免税是什么税
  • 外国常驻代表机构办理税务登记
  • 人力资源公司开办条件
  • 软件测试费计入什么科目
  • 一般纳税人收入会计分录
  • 固定资产出售账户处理
  • 营业收入少入0.02怎么办
  • 发票开具提示
  • 福利能开专票吗
  • 跨区域预缴企业所得税
  • 税局代增值税专用发票 需要带什么
  • 工商年报纳税总额是应缴还是实缴
  • 国税退税怎么做账
  • 盈亏平衡点定价法例题及答案
  • 汽车运输增值税专用发票多少税点
  • 工程施工余额怎么处理
  • 电脑安装的软件桌面上没显示
  • 以前年度的费用可以入在当年吗?
  • 如何一键重装系统win10
  • 如何给宽带加速使用
  • 苹果手机最新款2023新上市
  • 前端页面出现乱码
  • 资产处置损益计税基础是什么
  • anaconda的虚拟环境的作用
  • gridview用法
  • 业务招待费用列支范围
  • 如何搭建python
  • IndexError: invalid index of a 0-dim tensor. Use `tensor.item()` in Python
  • python制作chm
  • 营改增之后还有营业税金及附加吗
  • mysql主从同步的优点
  • 政府补助增值税即征即退
  • java数组合并变字符串
  • 普通增值发票可以抵扣进项税吗
  • 空调能直接用水清洗不?
  • 个体户银行开户选择哪个银行好
  • 为什么实收资本是贷方
  • 企业所得税包含营业外收入吗
  • 负债类科目有借贷方向吗
  • 资本化费用为什么会减少
  • 固定资产后续计量包括哪些内容
  • 查补以前年度增值税怎么申报
  • 工程外地预缴会计分录
  • 公司购买的家电怎么入账
  • 库存商品品种太多如何算成本
  • 新企业如何建帐
  • 盗版win10系统
  • win8.1开机进入桌面
  • 远程桌面安装
  • linux系统中的用户分为哪几类
  • winvnc.exe进程是什么
  • ubuntu20.10
  • linux中apt-get和yum
  • win7电脑开机显示屏显示黑屏怎么办
  • macos邮件
  • regsrv.exe - regsrv是什么进程 有什么用
  • xp系统怎样阻止脱机窗口弹出
  • windows8的ie浏览器在哪
  • win7系统回收站不见了怎么办
  • win10周年版
  • windows 8/10whql
  • 手把手教你搭建
  • unity3ds
  • 用滑动门技术设计一幅画
  • Unity3d AssetDatabase.SetLabels StartAssetEditing ValidateMoveAsset 语法复习
  • nodejs查找文件
  • unity自动生成
  • python中的__dict__
  • vue父子组件传值props
  • sdk和安卓版本
  • python连接Oracle数据库
  • 使用SQLite数据库保存和处理数据
  • 广东智慧团建登录不上去怎么回事
  • 如何给税务局提供发票
  • 税务上成品油换算
  • 陕西地方水利建设基金减免政策2023
  • 耕地被占用税怎么交
  • 国外工资个人所得税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设