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获取图片颜色信息的方法
Mar 18 Python
Python中DJANGO简单测试实例
May 11 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
Python创建xml文件示例
Mar 22 Python
Python使用openpyxl读写excel文件的方法
Jun 30 Python
Python爬虫常用小技巧之设置代理IP
Sep 13 Python
Python计算库numpy进行方差/标准方差/样本标准方差/协方差的计算
Dec 28 Python
Python + OpenCV 实现LBP特征提取的示例代码
Jul 11 Python
学python爬虫能做什么
Jul 29 Python
python+django+selenium搭建简易自动化测试
Aug 19 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php抽象类使用要点与注意事项分析
2015/02/09 PHP
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
JavaScript 存在陷阱 删除某一区域所有节点
2010/05/10 Javascript
Javascript 面向对象(二)封装代码
2012/05/23 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
JavaScript运动框架 解决防抖动问题、悬浮对联(二)
2017/05/17 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
vue2.0 和 animate.css的结合使用
2017/12/12 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
vue中datepicker的使用教程实例代码详解
2019/07/08 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
全面了解python中的类,对象,方法,属性
2016/09/11 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Jupyter Notebook折叠输出的内容实例
2020/04/22 Python
如何写一个自定义标签
2012/12/28 面试题
电气自动化大学生求职信
2013/10/16 职场文书
高中生自我评语大全
2014/01/19 职场文书
学生思想表现的评语
2014/01/30 职场文书
公司节能减排方案
2014/05/16 职场文书
开发房地产协议书
2014/09/14 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
商务宴会祝酒词
2015/08/11 职场文书
解决numpy和torch数据类型转化的问题
2021/05/23 Python
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL
python数字转对应中文的方法总结
2021/08/02 Python
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫