as运行时不报错却闪退_字典访问不存在的key 时,如何才能不报错?
写代码的明哥| 作者Python编程时光| 来源
本篇选自 Python黑魔法指南
-> 第五章
-> 第21节
。
Github链接: https://github.com/iswbm/magic-python
当一个字典里没有某个 key 时,此时你访问他是会报 KeyError 的。
>>> profile={}>>> profile["age"]Traceback (most recent call last): File "", line 1, in KeyError: 'age'
这里有一个小技巧,使用 collections 的 defaultdict 方法,可以帮你处理这个小问题,当你访问一个不存在的 key 时,会返回默认值。
defaultdict 接收一个工厂方法,工厂方法返回的对象就是字典的默认值。
常用的工厂方法有,我们常见的 int,str,bool 等
>>> a=int()>>> a0>>> >>> b=str()>>> b''>>>>>> c=bool()>>> cFalse
因为 defaultdict 可以这样子用。
>>> import collections>>> profile=collections.defaultdict(int)>>> profiledefaultdict(<class 'int'>, {})>>> profile["age"]0>>> profile=collections.defaultdict(str)>>> profiledefaultdict('str'>, {})>>> profile["name"]''
当然既然是工厂方法,你也可以使用 lambda 匿名函数来实现自定义的效果,比如我们使用 str 就会设置一个空字符串,但这并不是我想要的,我想要的是设置一个其他字符串,你就可以像下面这样子。
>>> info=collections.defaultdict(lambda: "default value")>>> infodefaultdict(lambda> at 0x10ff10488>, {})>>>>>> info["msg"]'default value'
![](/assets/blank.gif)
长按扫码关注一起学Python------------------如果觉得有点用的话,请毫不留情地素质三连吧,分享、点赞、在看、收藏,我不挑,因为这将是我写作更多优质文章的最强动力。
往期精选(?猛戳可查看)
1、用 Python 写个消消乐小游戏2、7张思维导图带你掌握 “Python学习路线”3、整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了
as运行时不报错却闪退_字典访问不存在的key 时,如何才能不报错?相关推荐
- 关于只有两行报错的闪退( E/ActivityManager: Found activity ActivityRecord)
关于只有两行报错的闪退 有点仓促,不过发现了新的报错.就把首条博客写了. 环境 Android Studio 2.3.3 Java1.8 对应开发版本是Android 7.0 12-21 21:27: ...
- 双击bat脚本运行python脚本,bat出现闪退的解决方法
前言 本文是该专栏的第10篇,后面会持续分享python的各种干货知识,值得关注. 最近粉丝朋友留言,双击bat脚本出现闪退.之前,笔者写过该问题的解决方法(使用bat脚本运行python脚本,bat ...
- windows脚本命令闪退_批处理闪退、运行中断等问题的处理
本文最后更新于:2019.4.3 因为我只会一些批处理代码,所以我的"局域网共享一键修复"等软件就都做成了批处理程序(后缀名为.bat)供大家使用.有些网友反馈:右键运行批处理,会 ...
- Android 页面跳转时发生双击导致app闪退的解决方案
在页面跳转时双击双击,查阅了各种资料 尝试一:从双击事件出发,避免双击事件 例如重写onClick事件 public abstract class NoDoubleClickListener impl ...
- java游戏管理器 闪退_手游频繁崩溃”闪退”? 从程序上找原因
文 / 网易 Tjay(QA) 作为玩家,当游戏crash的时候是什么心情,如果这个游戏玩起来还不错的话,那我可能还会打开第二次,如果这个游戏一般的话我可能直接怒删了.当多次出现闪退crash的时候, ...
- apk闪退_安卓手机经常闪退怎么办?安卓手机闪退解决办法
平时我们在使用手机的时候可能会发现,安卓手机使用的时间长一点就可能会出现手机闪退的现象,那么如何来解决手机闪退的问题呢?今天,刷机帮小编就为大家分享一篇如何解决手机闪退问题的教程,大家可以根据自己的实 ...
- arcgis运行python脚本时闪退_关于ArcMap中打开ArcToolbox导致闪退的解决办法
最近好久不用ArcGis的小编要用到ArcMap去发送一个GP服务,发现按照套路打开ArcMap点击ArcToolbox时,发生了ArcMap的闪退现象,几经周折终于解决了问题. 希望也遇到这类问题的 ...
- spyder 运行时闪退_记一次spyder打不开(闪退)之后,心累的恢复历程
问题描述:anacondaprompt能正常打开,spyder打开是蛛网界面能出来,但蛛网界面之后就是白屏状态,两三秒之后就闪退了,anaconda 上显示的错误是7692:29420:1108/16 ...
- 双系统gazebo闪退_记录Ubuntu16.04下PX4联合Gazebo仿真时遇到的问题与解决方法
一.arm-none-eabi-gcc版本问题 在Ubuntu16.04中使用sudo apt-get install gcc-arm-none-eabi命令会自动安装默认版本(gcc version ...
最新文章
- 人脸服务器如何与门禁系统对接,人脸识别门禁系统终端设备接口说明
- 北风设计模式课程---深入理解[代理模式]原理与技术
- 软件架构师的工作职责
- pythondocx模板_使用python-docx-template修改word文档
- java输出变量_Java笔记1: 输入输出与变量常量
- pandas numpy处理缺失值,none与nan比较
- 定时任务的选型及改造
- String.format(%03d, i)在数字前面补零
- ichart.js绘制虚线 ,平均分虚线
- VMware虚拟机中Ubuntu16.04系统下通过MVS运行海康威视工业相机
- 股票大作手操盘术---到手的利润
- 以太坊蜜罐智能合约分析
- Spring框架总结(8)
- 怎么导出微信语音【亲测有效】
- java练习题_循环控制_成绩
- 修改滚动条样式的方法
- AltiumDesigner
- 面试 -- 操作系统与计算机网络
- java 菜刀_菜刀Jsp脚本增强版
- js中的boolean原始类型和Boolean引用类型
热门文章
- Windows Hook机制(转贴一)
- 百度小程序html转码,百度小程序全局配置
- editplus public class自动补齐大括号问题破解
- 信息学奥赛一本通 1128:图像模糊处理 | OpenJudge NOI 1.8 13:图像模糊处理
- 动态规划 —— 线性 DP —— 最大和问题
- 信息学奥赛C++语言:重组
- 17 WM配置-策略-激活存储区搜索(Storage Section Search)
- html视频鼠标移除不播放,html - 在Mouseover上播放Gif并在鼠标移除时暂停Gif而不替换图像? - 堆栈内存溢出...
- android案例_Android实训案例——计算器的运算逻辑
- python:文件打包为exe