`

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`进行压缩,以减小存储空间。在这个...

    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库 | mt-940-1.4.tar.gz

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

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

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

    Python库 | kero-0.4.1.4.tar.gz

    标题中的"Python库 | kero-0.4.1.4.tar.gz"指的是一个名为"Kero"的Python库的特定版本,版本号为0.4.1.4,其源代码以tar.gz格式打包。在软件开发中,库是一组预编写的功能,可以帮助开发者快速构建应用程序,减少...

    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` 包含了该插件的源代码和其他相关文件,用于帮助开发者更有效地进行自动化测试。 ...

    ActivePython-2.7.1.4-win32

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

    bot-package-1.4.zip

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

    Python库 | docker-replay-1.4.tar.gz

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

    PyPI 官网下载 | speech-synthesis-1.4.tar.gz

    4. **Python库**:这个标签明确了speech-synthesis-1.4是一个Python编程语言的库,开发者可以将其导入到Python项目中,利用其提供的API进行语音合成功能的开发。 至于压缩包子文件的文件名称列表只有"speech-...

    python2-botocore-1.4.43-1.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

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

    离线安装包,亲测可用

    Python库 | schema-salad-1.4.20160108200836.tar.gz

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

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

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

    activemq-transport-jgroups-1.4.jar.zip

    《ActiveMQ与JGroups在1.4版本中的整合——深入解析activemq-transport-jgroups-1.4.jar.zip》 在IT行业中,消息中间件是实现系统间异步通信的关键技术之一,Apache ActiveMQ作为一款开源的消息代理,被广泛应用于...

    python-dateutil-1.4.tar

    该库丰富了python对日期时间的操作

    Python库 | django-aws-message-1.4.tar.gz

    总的来说,`django-aws-message-1.4`这个库为使用Django的开发者提供了一个强大的工具,帮助他们利用AWS的消息服务进行高效的后端开发。在实际项目中,结合Django的其他特性,如模型和视图,开发者可以构建出具有...

Global site tag (gtag.js) - Google Analytics