我的编程空间,编程开发者的网络收藏夹
学习永远不晚

高效使用python字典技巧分享

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

高效使用python字典技巧分享

  python字典高效使用技巧分享:字典(dict)对象是 Python 最常用的数据结构,曾有人开玩笑地说:“Python企图用字典装载整个世界”,字典在Python中的重要性不言而喻。但是不少学员觉得字典的使用学起来较为困难,因此今天整理了一些高效使用字典的小技巧,希望能够对大家有所帮助,大家可以在日常应用开发中合理利用,让代码更加 Pythonic。

  1、用 “in”关键字检查 key 是否存在

  Python之禅中有一条开发哲学是:“There should be one-- and preferably only one --obvious way to do it.”即“尽量找一种,最好是唯一种显而易见的解决方案。”

  Python2 中判断某个 key 是否存在字典中,可以使用 “has_key 方法”,另外一种方式则是使用 “in关键字”。

  但是这里小编要强烈推荐大家在实际应用中使用后者,一方面是因为 “in” 的处理速度更快,另一方面则是“ has_key” 这个方法在 Python3 被移除了,要想同时兼容py2和py3两个版本的代码,用 “in ”是最好的选择。

  2、用 “get” 获取字典中的值

  关于获取字典中的值,一种简单的方式就是用“d[x]”访问该元素。但是这种情况在 key 不存在的情况下会报 “KeyError ”错误,当然你可以先用“ in ”操作检查 key 是否在字典中再获取,不过这种方式不符合 Python 之禅中说的:“Simple is better than complex. Flat is better than nested.”——“好的代码应该是简单易懂的,扁平的代码结构更加可读。”

  所以小编推荐大家可以使用“get ”方法来代替“ if ... else”获取字典中的值。

  3、用 “setdefault” 为字典中不存在的 key 设置缺省值

  如果你在做分类统计时,希望把同一类型的数据归到字典中的某种类型中,比如把相同类型的事物用列表的形式重新组装,得到新的字典:普通的方式就是先判断 key 是否已经存在,如果不存在则要先用列表对象进行初始化,再执行后续操作。

  这里小编告诉给大家,更好的方式其实是使用字典中的“ setdefault ”方法。

  “setdefault”的作用是:

  如果 key 存在于字典中,那么直接返回对应的值,等效于“ get ”方法;

  如果 key 不存在字典中,则会用“setdefault”中的第二个参数作为该 key 的值,再返回该值。

  4、用 “defaultdict” 初始化字典对象

  如果不希望 d[x] 在 x 不存在时报错,除了在获取元素时使用“get”方法之外,另外一种方式是用 collections 模块中的 “defaultdict”在初始化字典的时候指定一个函数,其实 “defaultdict” 是 dict 的子类。当 key 不存在于字典中时,list 函数将被调用并返回一个空列表赋值给 d[key],这样一来,你就不用担心调用 d[k] 会报错了。

  5、用字典实现 “switch ... case” 语句

  同学说Python 中没有 “switch ... case” 语句,这个问题小编表示这个语法过去没有,现在没有,以后也不会有。因为Python简洁的语法完全可以用“ if ... elif ”实现。

  如果有太多的分支判断,还可以使用字典来代替。

  6、使用“ iteritems ”迭代字典中的元素

  python提供了几种方式迭代字典中的元素。

  第一种是使用 items 方法:items 方法返回的是(key ,value)组成的列表对象,这种方式的弊端是迭代超大字典的时候,内存瞬间会扩大两倍,因为列表对象会一次性把所有元素加载到内存。

  更好的方式是使用 “iteritems”,“iteritems” 返回的是迭代器对象,迭代器对象具有惰性加载的特性,只有真正需要的时候才生成值,这种方式在迭代过程中不需要额外的内存来装载这些数据。

  注意: Python3 中,只有 items 方法了,它等价于 Python2 中的“ iteritems”,而 “iteritems ”这个方法名被移除了。

  7、使用字典推导式

  推导式是个绝妙的东西,列表推导式一出,map、filter等函数黯然失色,自 Python2.7以后的版本,此特性扩展到了字典和集合身上,构建字典对象无需调用 dict 方法。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

高效使用python字典技巧分享

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

高效使用python字典技巧分享

  python字典高效使用技巧分享:字典(dict)对象是 Python 最常用的数据结构,曾有人开玩笑地说:“Python企图用字典装载整个世界”,字典在Python中的重要性不言而喻。但是不少学员觉得字典的使用学起来较为困难,因此今天整理了一些高效使用字典的小技巧,希望能够对大家有所帮助,
高效使用python字典技巧分享

编程热搜

  • 华为高级工程师认证费用
      华为高级工程师认证费用是多少?华为高级工程师认证要多少钱?华为高级工程师认证是华为认证体系中用于标识个人能力在某一技术领域达到高级工程师级别的证明,认证费用为200美金,通过考试取得的证书3年有效。  华为高级工程师认证费用是必修方向和选修方向的总和,其中必修方向认证费用为300美金,选修方向认证费用为180美金。
    华为高级工程师认证费用
  • 2024年初级软考上半年考试时间安排
    初级软考每年安排两次考试,2024年初级软考上半年考试时间已公布,2024年初级软考上半年考试时间为5月25-28日。2024年初级软考上半年报名时间及入口:根据往年各省初级软考报名时间来看,2024年上半年初级软考报名时间3月份开始,具体请考生关注全国各省2024上半年软考报名时间及入口汇总表,希赛小编将及时为大家更
    2024年初级软考上半年考试时间安排
  • HCIA证书和HCIE哪个比较好?
      HCIA证书和HCIE哪个比较好?华为认证包含三个等级,分别是HCIA(华为认证网络工程师)、HCIP(华为认证网络资深工程师)、HCIE(华为认证互联网专家)认证。  HCIA(Huawei Certified ICT Associate )即华为认证ICT工程师,是华为职业认证中用于标识个人能力在某一技术领域达
    HCIA证书和HCIE哪个比较好?
  • 教你在PPT中创建好看的镜像效果
      当我们在阅读杂志书刊,或者看电影的时候常常都会看到像下图一样的原图片与图片镜像的组合效果的图片,在很多的摄影作品中也会有,我们其实也可以在PPT中轻松实现这种应用于各大媒介的图文特效技巧,不信的话我们一起来学习一下,操作过程其实并不复杂!  下面我们就开始我们的具体操作步骤了,首先第一步,我们需要先打开PowerP
    教你在PPT中创建好看的镜像效果
  • 多媒体应用设计师可以提前交卷吗
      可以。但是多媒体应用设计师提前交卷有时间限制,根据软考的考场规则,按照人力资源和社会保障部文件规定,开考5分钟后应试人员一律禁止入场。专业技术人员资格考试原则上封闭2个小时,不足2小时的全程封闭。  软考多媒体应用设计师属于专业技术人员资格考试,专业技术人员资格考试原则上封闭2个小时,不足2小时的全程封闭。  根据
    多媒体应用设计师可以提前交卷吗
  • 全国计算机二级C语言程序设计章节练习题及答案(1)
      对于备考计算机二级C语言考试的考生可以多做试题,一方面了解往年考试题型,一方面熟悉往年考点。今天编程学习网小编给大家准备了全国计算机二级C语言程序设计章节练习题及答案(1),供考生们练习。  点击查看:全国计算机二级C语言程序设计章节练习题及答案汇总  判断题  ×1.C++语言和C语言都是面向对象的程序设
    全国计算机二级C语言程序设计章节练习题及答案(1)
  • 广西2024上半年计算机软考什么时候报名?
    广西2024上半年计算机软考3月25日开始报名,具体报名时间见全国各省2024上半年软考报名时间及入口汇总表。2024上半年广西软考考试采用网络报名的方式,考生在规定的报名时间内进入中国计算机技术职业资格网,点击页面右下方的报名入口,进入全国计算机技术与软件专业技术资格(水平)考试网上报名平台,选择“广西”入口后点击进
    广西2024上半年计算机软考什么时候报名?
  • 软考可以申请退税吗
      可以。软考证书是可以抵扣个税的,按照个税6项专项附加扣除标准,在取得软考证书的当年,可以按照3600元定额扣除。  软考证书可以抵扣个税,根据国务院印发的《个人所得税专项附加扣除暂行办法》,第三章继续教育包含三条,具体内容如下:  第八条 纳税人在中国境内接受学历(学位)继续教育的支出,在学历(学位)教育期间按照每
    软考可以申请退税吗
  • win10如何正确禁用IPv6网络协议
       在Windows Vista和Server 2008开始,微软包括本地支持的IPv6(互联网协议第6版),并默认启用。IPv6是新的计算机的地址协议,最终将取代IPv4这是目前最流行的标准。win10中默认开启了对IPv6协议的支持,但是会影响到系统运行速度和磁盘占有率等。除非你的网络有IPv
    win10如何正确禁用IPv6网络协议
  • 2020年数据库系统工程师上午真题及答案解析
      2019上半年数据库系统工程师考试已结束,今天编程学习网小编为大家整理了2020年数据库系统工程师上午真题及答案解析,以便大家了解2020下半年数据库系统工程师基础知识考试真题。  软考数据库系统工程师上午考试为基础知识,编程学习网小编为大家整理了2020年数据库系统工程师上午真题,想知道答案和解析的考生可以直接进入在线题
    2020年数据库系统工程师上午真题及答案解析

目录