Python中字典与恒等运算符的用法分析


Posted in Python onAugust 22, 2019

本文实例讲述了Python中字典与恒等运算符的用法。分享给大家供大家参考,具体如下:

字典

字典是可变数据类型,其中存储的是唯一键到值的映射。

elements = {"hydrogen": 1, "helium": 2, "carbon": 6}

字典的键可以是任何不可变类型,例如整数或元组,而不仅仅是字符串。甚至每个键都不一定要是相同的类型!

print(elements["helium"]) # 2

我们可以使用方括号并在括号里放入键,查询字典中的值或向字典中插入新值

elements["lithium"] = 3

使用关键字 in 检查值是否在字典中。字典有一个也很有用的相关方法,叫做 getget 会在字典中查询值,但是和方括号不同,如果没有找到键,get 会返回 None(或者你所选的默认值)

print("carbon" in elements) # True
print(elements.get("dilithium")) # None

如果你预计查询有时候会失败,get 可能比普通的方括号查询更合适,因为错误可能会使程序崩溃。

恒等运算符

概念解释

| 关键字 | 运算符
|---|----
| is | 检查两边是否恒等
| is not | 检查两边是否不恒等

可以使用运算符 is 检查某个键是否返回了 None, 或者使用 is not 检查是否没有返回 None

n = elements.get("dilithium")
print(n is None) # True
print(n is not None) # False

字典和恒等运算符[相关练习]

定义一个叫做 population 的字典

#  Key   |  Value
# Shanghai |  17.8
# Istanbul |  13.3
# Karachi  |  13.0
# Mumbai  |  12.5
population = {
  "Shanghai":17.8,
  "Istanbul":13.3,
  "Karachi":13.0,
  "Mumbai":12.5
}
print(population["Mumbaix"]) # 12.5

以下哪些项可以用作字典的键?(请选中所有适用项。) Hint: 字典的键必须是不可变的,即所属的类型必须不可变。

1. 可用 : str, int, float, tuples, bool
2. 不可用 :list, set, dictionaries

如果我们查找不在字典中的值,会发生什么?
发生 KeyError

字典有一个也很有用的相关方法,叫做 get。get 会在字典中查询值,但是和方括号不同,如果没有找到键,get 会返回 None(或者你所选的默认值)

正确的使用方式:

elements.get('dilithium') # None

错误的使用方式:

elements['dilithium'] # KeyError: 'dilithium'

使用get并添加默认值, 当键没找到时,get会返回该值。

elements.get('kryptonite', 'There\'s no such element!') # "There's no such element!"

检查是否相等与恒等:== 与 is

以下代码的输出是什么?

a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a == b) # True
print(a is b) # True
print(a == c) # True
print(a is c) # False

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
KMP算法精解及其Python版的代码示例
Jun 01 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
使用python将时间转换为指定的格式方法
Nov 12 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
Jun 13 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
Jun 21 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
python实现滑雪者小游戏
Feb 22 Python
Python常用数字处理基本操作汇总
Sep 10 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
详解NumPy中的线性关系与数据修剪压缩
May 25 Python
python实现通过flask和前端进行数据收发
Aug 22 #Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 #Python
PyQt+socket实现远程操作服务器的方法示例
Aug 22 #Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 #Python
详解Django-channels 实现WebSocket实例
Aug 22 #Python
解决python3 requests headers参数不能有中文的问题
Aug 21 #Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 #Python
You might like
做个自己站内搜索引擎
2006/10/09 PHP
ezSQL PHP数据库操作类库
2010/05/16 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
2009/07/14 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
使用jquery写个更改表格行顺序的小功能
2014/04/29 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
jQuery oLoader实现的加载图片和页面效果
2015/03/14 Javascript
headjs实现网站并行加载但顺序执行JS
2016/11/29 Javascript
深入理解选择框脚本[推荐]
2016/12/13 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
Python中的特殊语法:filter、map、reduce、lambda介绍
2015/04/14 Python
python修改操作系统时间的方法
2015/05/18 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
django页面跳转问题及注意事项
2019/07/18 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Python爬虫运用正则表达式的方法和优缺点
2019/08/25 Python
python3 实现调用串口功能
2019/12/26 Python
Python库安装速度过慢解决方案
2020/07/14 Python
Python如何给你的程序做性能测试
2020/07/29 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
Android面试宝典
2013/08/06 面试题
公司请假条范文
2014/04/11 职场文书
捐资助学倡议书
2014/04/15 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书