Python中字典的基本知识初步介绍


Posted in Python onMay 21, 2015

 字典是可变的,并且可以存储任意数量的Python对象,包括其他容器类型另一个容器类型。字典包括键对(称为项目)及其相应的值。

Python字典也被称为关联数组或哈希表。字典的一般语法如下:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

可以用下面的方式创建字典:

dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };

每个按键都来自它的值用冒号(:),该项目以逗号分隔,整个事情是包含在大括号分隔。没有任何项目一个空的字典是写只有两个大括号,就像这样:{}

键在一个字典中是唯一的,而值可能不是。字典的值可以是任何类型的,但键必须是不可变的数据类型,例如字符串,数字,或元组。
访问字典的值:

要访问字典元素,您可以使用熟悉的方括号一起的关键,获得它的值。下面是一个简单的例子:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Name']: ", dict['Name'];
print "dict['Age']: ", dict['Age'];

当执行上面的代码中,产生以下结果:

dict['Name']: Zara
dict['Age']: 7

如果要访问一个不存在的键,这会得到一个错误,如下所示:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

print "dict['Alice']: ", dict['Alice'];

当执行上面的代码,产生以下结果:

dict['Zara']:
Traceback (most recent call last):
 File "test.py", line 4, in <module>
  print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

更新字典:

可以通过添加一个新条目或项目(即一个键 - 值对),修改现有条目或删除。作为简单的例子,如下图所示在现有条目更新字词:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry


print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

当执行上面的代码,产生以下结果:

dict['Age']: 8
dict['School']: DPS School

删除字典元素:

可以删除单个字典元素或清除字典中的全部内容。也可以删除整个字典在一个单一的操作。

要删除整个字典,只要用del语句。下面是一个简单的例子:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};

del dict['Name']; # remove entry with key 'Name'
dict.clear();   # remove all entries in dict
del dict ;    # delete entire dictionary

print "dict['Age']: ", dict['Age'];
print "dict['School']: ", dict['School'];

这将产生以下结果。注意引发异常,这是因为经过del dict删除,字典已经不存在了:

dict['Age']:
Traceback (most recent call last):
 File "test.py", line 8, in <module>
  print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

注:del()方法会在后续的章节中讨论。
字典的键的属性:

字典值没有限制。它们可以是任意Python对象,无论是标准的对象或用户定义的对象。但是作为键,是不可以这样的。

要记住字典中的键的两个要点:

(一)不准一个键对应多个条目。这意味着不能有重复的键。当有重复的键,在分配过程中以最后分配的为准。下面是一个简单的例子:

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'};

print "dict['Name']: ", dict['Name'];

当执行上面的代码,产生以下结果:

dict['Name']: Manni

(二)键的值字必须是不可变的。这意味着可以使用字符串,数字或元组作为字典的键,但像['key']是不允许的。下面是一个简单的例子:

#!/usr/bin/python

dict = {['Name']: 'Zara', 'Age': 7};

print "dict['Name']: ", dict['Name'];

当执行上面的代码,产生以下结果:

Traceback (most recent call last):
 File "test.py", line 3, in <module>
  dict = {['Name']: 'Zara', 'Age': 7};
TypeError: list objects are unhashable
Python 相关文章推荐
python实现查找excel里某一列重复数据并且剔除后打印的方法
May 26 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
对python程序内存泄漏调试的记录
Jun 11 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
解决python 自动安装缺少模块的问题
Oct 22 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
谈谈Python中的while循环语句
Mar 10 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
NumPy中的维度Axis详解
Nov 26 Python
wxpython自定义下拉列表框过程图解
Feb 14 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 #Python
Linux下用Python脚本监控目录变化代码分享
May 21 #Python
Python批量按比例缩小图片脚本分享
May 21 #Python
初步讲解Python中的元组概念
May 21 #Python
Linux下使用python自动修改本机网关代码分享
May 21 #Python
Python字符串逐字符或逐词反转方法
May 21 #Python
Python合并字符串的3种方法
May 21 #Python
You might like
9个PHP开发常用功能函数小结
2011/07/15 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
深入认识javascript中的eval函数
2009/11/02 Javascript
利用js实现遮罩以及弹出可移动登录窗口
2013/07/08 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
JavaScript“尽快失败”的原则实例详解
2016/10/08 Javascript
浅析JavaScript中var that=this
2017/02/17 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
jQuery 防止相同的事件快速重复触发方法
2018/02/08 jQuery
Node.js进阶之核心模块https入门
2018/05/23 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
JS使用Dijkstra算法求解最短路径
2019/01/17 Javascript
javascript中join方法实例讲解
2019/02/21 Javascript
详解Vue demo实现商品列表的展示
2019/05/07 Javascript
layui字体图标 loading图标静止不旋转的解决方法
2019/09/23 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
[52:00]2018DOTA2亚洲邀请赛 4.1 小组赛 A组加赛 LGD vs Optic
2018/04/02 DOTA
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
Python从零开始创建区块链
2018/03/06 Python
在python 中实现运行多条shell命令
2019/01/07 Python
python模块和包的应用BASE_PATH使用解析
2019/12/14 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
北京青年观后感
2015/06/15 职场文书
国庆节新闻稿
2015/07/17 职场文书
Python 制作自动化翻译工具
2021/04/25 Python
深入浅析Redis 集群伸缩原理
2021/05/15 Redis