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实现代码行数统计示例分享
Feb 10 Python
基于Python实现通过微信搜索功能查看谁把你删除了
Jan 27 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
python定向爬虫校园论坛帖子信息
Jul 23 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
HTML的form表单和django的form表单
Jul 25 Python
python列表插入append(), extend(), insert()用法详解
Sep 14 Python
python rolling regression. 使用 Python 实现滚动回归操作
Jun 08 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
python状态机transitions库详解
Jun 02 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
python读取mat文件生成h5文件的实现
Jul 15 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
PHP用户指南-cookies部分
2006/10/09 PHP
php addslashes 函数详细分析说明
2009/06/23 PHP
深入理解PHP中的global
2014/08/19 PHP
php字符串函数学习之substr()
2015/03/27 PHP
highchart数据源纵轴json内的值必须是int(详解)
2017/02/20 PHP
php 生成加密公钥加密私钥实例详解
2017/06/16 PHP
繁简字转换功能
2006/07/19 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
javascript屏蔽右键代码
2014/05/15 Javascript
JavaScript中的对象序列化介绍
2014/12/30 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
vue动画效果实现方法示例
2019/03/18 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
vue下canvas裁剪图片实例讲解
2020/04/16 Javascript
[02:04]2020年夜魇暗潮预告片
2020/10/30 DOTA
Python编程实现正则删除命令功能
2017/08/30 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
如何利用Python识别图片中的文字
2020/05/31 Python
python实现企业微信定时发送文本消息的示例代码
2020/11/24 Python
STP的判定过程
2012/10/01 面试题
播音主持专业个人自我评价
2014/01/09 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
元旦寄语大全
2014/04/10 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
博士生专家推荐信
2014/09/26 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
导游词欢迎词
2015/02/02 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫
python使用shell脚本创建kafka连接器
2022/04/29 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP
Java 多线程并发FutureTask
2022/06/28 Java/Android