`

Python 食谱--1.4:从字典中获取一个值

阅读更多

从字典中获取一个值 

问题 


你需要从字典中获得一个值,不要处理在字典里找不到你所需要的键值的异常。 

那就是字典的get方法。 如果你有一个字典 

d = {'key':'value'} 
 



在一个异常安全的方法中,你能够写一个从d中提取‘key’的值的测试 

if d.has_key('key'): # or, in Python 2.2 or later: if 'key' in d: 
  print d['key'] 
else: 
  print 'not found' 
 




然而有一个更简单的方法 
print d.get('key', 'not found')

print d.get('key', 'not found') 
 



讨论 

想从一个字典获得一个值,但是首先要确信这个值是否在这个字典里?使用简单有效的get方法。 


如果你试着用象d[x] 那样的语法来获得一个值,并且x的值不是字典d的键值, 你的尝试将抛出一个KeyError异常。 这个是经常有用的。如果你期望x的值是d中的一个键值,一个异常是通知你犯错了的正确途径。(那就是说,你需要调试你的程序了) 


然而,关于它,你经常需要更多的假设:直到你知道x的值或者是或者不是d中的一个键值。在这种情况下,忘掉has_key 方法或者try/except语句。 取而代之的,使用get方法。如果你调用d.get(x) ,没有异常被抛出。如果x是d的一个键值,你得到d[x]。如果不是,你得到None(你能检查或者传播它)。 当x不是d的键值的时候,如果None不是你想要的,调用d.get(x, somethingelse) 来替代。在这种情况下,如果x不是一个键值。你将得到somethingelse的值 


Get是简单,有效的机制,python的文档很好的解释了它。但是不知道它的人的数量令人惊讶。当抽取REQUEST字典的一些值的时候,这个惯用方法在zope中也是相当普遍的。 

分享到:
评论

相关推荐

    rpcsvc-proto-1.4.tar.gz

    `rpcsvc-proto-1.4.tar.gz`是一个源代码压缩包,通常在Linux或类Unix系统中使用。`tar.gz`是一种常见的文件打包和压缩格式,由`tar`命令用于打包多个文件和目录,然后使用`gzip`进行压缩,以减小存储空间。在这个...

    统信系统UOS资源包python3-lib389-all,cockpit-389-ds-all.deb,389-ds.deb

    统信系统UOS资源包cockpit-389-ds_1.4.0.21-1_all.deb,python3-lib389_1.4.0.21-1_all.deb,389-ds_1.4.0.21-1_all.deb 资源列表: 389-ds_1.4.0.21-1_all.deb python3-lib389_1.4.0.21-1_all.deb cockpit-389-ds_...

    gamin-python-0.1.7-1.4.EL4.i386.rpm

    gamin-python-0.1.7-1.4.EL4.i386.rpm

    Python库 | panda-client-1.4.89.tar.gz

    而我们今天要探讨的是一个与Pandas相关的库——panda-client-1.4.89,这是一个针对Pandas的扩展,旨在增强其功能和性能,特别适用于后端开发中对大规模数据集的处理。 Pandas库的核心是DataFrame对象,它是一个二维...

    Python库 | client_sdk_python-0.13.1.4-py3-none-any.whl

    python库。 资源全名:client_sdk_python-0.13.1.4-py3-none-any.whl

    Python库 | mt-940-1.4.tar.gz

    标题中的“Python库 | mt-940-1.4.tar.gz”暗示了这是一个与Python相关的库,且已经打包成`.tar.gz`格式的压缩文件。`.tar.gz`是Linux和Unix环境中常用的压缩方式,它首先使用`tar`命令将多个文件或目录打包成一个...

    Python库 | py4openag-0.0.1.4.tar.gz

    《Python库py4openag-0.0.1.4:深入解析与应用》 Python是一种广泛使用的高级编程语言,以其简洁、易读的语法深受开发者喜爱。在Python的生态系统中,库扮演着至关重要的角色,它们提供了丰富的功能,极大地提高了...

    Python库 | http-server-base-1.4.1.2.tar.gz

    今天我们将聚焦于一个名为`http-server-base-1.4.1.2`的Python库,它为开发者提供了构建基于HTTP协议的服务器的基础框架。这个库的资源以`.tar.gz`格式提供,是Linux和Unix系统中常见的归档和压缩文件类型,便于用户...

    django-mssql-1.4.zip

    《Django MSSQL 1.4:连接Python与SQL Server的桥梁》 在Python的世界里,Django是一个广受欢迎的Web开发框架,以其强大的功能和高效性著称。然而,当开发者需要处理与Microsoft SQL Server的数据交互时,Django...

    Python库 | peachapisec-slack-1.4.41.tar.gz

    在给定的资源“peachapisec-slack-1.4.41.tar.gz”中,我们可以看到这是一款针对Python开发的后端库,主要用于与Slack API交互。 首先,让我们来了解一下Python。Python是一种高级编程语言,以其简洁明了的语法和...

    metaq-server-1.4.6.2客户端+服务端

    总结,MetaQ-server-1.4.6.2版本提供了一个完整的消息中间件解决方案,包括服务端、客户端和相应的文档支持。通过使用MetaQ,开发者可以构建出高效、可靠的分布式系统,同时利用Javadoc文档来加速开发过程,确保代码...

    Python库 | seldon-deploy-sdk-1.4.1.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:seldon-deploy-sdk-1.4.1.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    python3-bytesize-1.4-3.el8.x86_64.rpm

    离线安装包,亲测可用

    Python库 | pytest-peach-1.4.43.tar.gz

    `pytest-peach` 是一个基于 Python 的测试框架 `pytest` 的扩展插件,版本号为 1.4.43。这个压缩包 `pytest-peach-1.4.43.tar.gz` 包含了该插件的源代码和其他相关文件,用于帮助开发者更有效地进行自动化测试。 ...

    Python库 | xiangqi-setup-1.4.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:xiangqi-setup-1.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python库 | smart-integration-utils-1.4.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:smart-integration-utils-1.4.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Python实例-毕业项目设计:数据整理与备份工具

    该实例是一个Python脚本,用于读取文本文件中的数据,并将数据按日期和小时组织成字典,便于后续的搜索和定位。脚本首先读取一个名为'data.txt'的文件,然后通过时间戳将数据转换为日期-小时格式,并存储在字典中。...

    ActivePython-2.7.1.4-win32

    ActivePython-2.7.1.4-win32 重新包装之后的Python,有一些比较方便的功能,比如添加组件之类的

    Python库 | http-server-base-1.5.1.4.tar.gz

    中,我们聚焦于一个名为`http-server-base`的Python库,其版本为1.5.1.4,并被封装在一个tar.gz压缩文件中。这个库主要用于网络服务器的开发,特别是HTTP服务器的基础构建。 首先,理解HTTP(超文本传输协议)是...

    bot-package-1.4.zip

    这种爬虫技术是基于网络机器人(Web Robot)的概念,它们遵循一定的规则在网络中自动浏览和收集数据,而"bot-package-1.4"则提供了一个方便的工具集,使得开发者无需从零开始编写爬虫代码。 【标签】包括“bot”、...

Global site tag (gtag.js) - Google Analytics