位置: 编程技术 - 正文

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

  • 电子承兑到期了在哪里选择清算方式
  • 车间管理人工资计入什么科目
  • 转让房地产增值税
  • 去年发生的成本但今年9月份才开票付款
  • 小规模纳税人计提增值税
  • 部分退货退款剩下的钱什么时候给卖家
  • 非货币性资产交换损益计算
  • 增值税申报税额填错了怎么进行填
  • 关于增值税普通发票开票信息填写要求
  • 案例分析关于团员青年的思想困惑疏导和成长问题释疑
  • 收购粮食怎么做账
  • 19年新会计制度
  • 季度所得税预缴税款表中主营业务成本是否包含管理费用
  • 拆迁安置土地的补偿标准
  • 个体户经营所得核定税率
  • 定期结汇会计分录?
  • 返利发票税率
  • 冲销坏账怎么做分录
  • 资产负债表与现金流量表的关系
  • win11如何多窗口
  • win10 21h1正式版怎么样
  • 小企业原材料包括
  • 企事业承包承租经营所得税税法
  • 收回财政结余资金账务处理
  • 电脑装机光盘
  • php表单验证实例
  • 收到某公司的钱的会计分录
  • php中分页功能的实现
  • php js
  • 拖拉机拖拉机耕地
  • react reducer详解
  • 企业和银行未达账项
  • php安装oci8
  • 外贸企业出口退税申报流程
  • 租房发票怎么缴税
  • SQLite教程(十四):C语言编程实例代码(2)
  • 在正确使用和正常维护的条件下
  • sql server2000中事务的类型有
  • 员工工资需要交税吗
  • 库存现金挂账多久
  • 一般纳税人金税盘怎么清卡
  • 差旅费抵扣增值税税率
  • 小规模纳税人代账费用
  • 短期借款财务处理
  • 广告被罚
  • 会计凭证的做账原则
  • 债权投资减值准备是什么科目
  • 企业收到政府补助金80 000元,存入银行
  • 外包加工如何做账
  • 不同税率的产品可以开在同一张发票上吗
  • 设备折旧怎么记账
  • 利润表中财务费用中的利息费用和利息收入
  • 旅游服务会议费发票
  • 伤残就业补偿金记入什么科目
  • MySQL数据库远程登录
  • windowsserver2016安装完成后怎么是命令模式
  • win2008r2下载
  • 苹果mac无法连接网络
  • windowspe安装win7
  • ububtu安装教程
  • ubuntu里怎么装软件
  • 怎么清理win7
  • hppusg.exe
  • win7桌面移到其他盘
  • win8.1安全模式怎么进入
  • win8资源管理器未响应
  • css实现弹窗
  • 使用jquery操作dom
  • androidserviceslibrary设置
  • 递归怎么调用
  • perl @inc
  • 详细分析使用AngularJS编程中提交表单的方式
  • jquery mouse
  • ug10避让怎么设置
  • 如何防止蟑螂爬到床上
  • javascript简明教程
  • 陷阱类过关游戏
  • android程序崩溃会被重启
  • 苹果税务发票
  • 全国税务发票查询电话
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设