`

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库 | 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库 | 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

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

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

    Python库 | h2o_pysparkling_2.1-3.32.1.4-1.tar.gz

    H2O是一个开源的、内存中的机器学习平台,提供快速、可扩展的预测性建模。H2O支持多种算法,如梯度提升机(GBM)、随机森林(Random Forest)和深度学习(Deep Learning),并具有自动特征工程和模型评估等功能。 ...

    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库 | 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”、...

    Python库 | django-gipsy-1.4.tar.gz

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

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

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

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

    离线安装包,亲测可用

    PyPI 官网下载 | clc-sdk-1.4.tar.gz

    本文将详细探讨PyPI官网下载的资源——clc-sdk-1.4.tar.gz,这是一个与云原生(Cloud Native)相关的Python库,特别关注其在分布式系统中的应用,以及与Zookeeper的交互。 首先,让我们解压缩clc-sdk-1.4.tar.gz,...

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

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

Global site tag (gtag.js) - Google Analytics