位置: 编程技术 - 正文

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的项目)

  • 递延所得税负债账务处理
  • 增值税加计扣除是什么意思啊
  • 价外费用含税吗
  • 增值税发票选择确认平台是什么?
  • 差旅费津贴需要缴纳个人所得税吗?
  • 银行存款日记账电子表格模板
  • 旅游业小规模纳税人的认定标准是什么
  • 2019劳务公司务怎么处理
  • 建行网银转账复核流程
  • 分公司转独立公司
  • 建筑公司支付给个人的劳务费计入什么科目
  • 周转材料属于什么会计要素
  • 购入债券计入什么科目
  • 注册资本的印花税
  • 出口企业是外贸企业吗
  • 个人机械租赁怎么纳税
  • 借款利息不能抵扣进项税
  • 国税登记流程
  • 个人出租商铺要交城镇土地使用税吗
  • 计提应付利息编制记账凭证用什么原始凭证?
  • 全部出售子公司怎么做账
  • 借款的印花税入哪个账户
  • 销售固定资产的收入计入什么科目
  • 2021年windows最新版本
  • win11透明任务栏怎么设置
  • 报销金额和发票金额不一致怎么做账
  • php技术实现加载的过程
  • 补收入的会计分录
  • 自有物业出租需交税吗
  • 排灯节起源
  • php使用crypt()函数进行加密
  • 管理费用冲减其他应收款
  • php下载功能
  • 投喂小鸟
  • 公章的法律效力范围
  • 个税申报系统升级要多久
  • 公司捐款怎样抵扣
  • 销售包装什么意思
  • 分公司非独立核算企业所得税处理
  • 帝国cms php8.0
  • 如何查询以前申请的新西兰签证记录
  • 营业成本包含折旧和摊销吗
  • 无形资产摊销是当月增加当月摊销吗
  • 总结一周内学习的Sql经验(一)
  • 开发支出与研发支出的区别
  • 制造企业预提短期借款利息的会计科目处理
  • 实收资本核算内容是什么
  • 月末结转增值税怎么算
  • 把公司土地转让合法吗
  • 什么是暂估入库核算
  • 暂估入库一直没冲会怎么样
  • 公司缴纳印花税如何缴纳
  • 开发票的其他要求是?
  • 公司工会经费怎么花不违规
  • 现金日记账怎么填写规范
  • Navicat for MySQL定时备份数据库及数据恢复详解
  • Mac下mysql 5.7.17 安装配置方法图文教程
  • redhat安装yum
  • 用指定用户名访问网络
  • windows8.1右下角水印
  • mac关机快捷键是什么键
  • linux scp命令的用法详解
  • 个性化定制方案怎么写
  • Linux分区详解
  • cocos2d-x教程
  • renderjs echarts
  • 一个简单的小实验
  • firefox浏览器标识ua
  • jquery将文本框设置为只读
  • cocos引擎教程
  • js密码验证正则表达式
  • unity坐标系转换
  • js闭包的使用
  • android获取设备输出声音
  • javascript基础笔记
  • 北京市国家税务局电子税务局
  • 一季度土地市场
  • 怎么在国税网站取消已申报的财务报表
  • 中国进口奶粉关税税率表2019
  • 安徽省建筑企业资质查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设