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通过openpyxl生成Excel文件的方法
May 12 Python
判断网页编码的方法python版
Aug 12 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
深入浅析Python中的迭代器
Jun 04 Python
浅析python内置模块collections
Nov 15 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
python实现随机加减法生成器
Feb 24 Python
什么是python的自省
Jun 21 Python
python基于机器学习预测股票交易信号
May 25 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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数组
2006/10/09 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
mysql desc(DESCRIBE)命令实例讲解
2016/09/24 PHP
ZendFramework2连接数据库操作实例
2017/04/18 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
tp5修改(实现即点即改)
2019/10/18 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
经验几则 推荐
2006/09/05 Javascript
javascript编程起步(第四课)
2007/02/27 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
jQuery获取浏览器中的分辨率实现代码
2013/04/23 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
2016/10/21 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
Python内置数据类型详解
2014/08/18 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
2019/09/10 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
详解Python设计模式之策略模式
2020/06/15 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
MVMT手表官方网站:时尚又实惠的高品质手表
2016/12/04 全球购物
日本快乐生活方式购物网站:Shop Japan
2018/07/17 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
岗位明星事迹材料
2014/05/18 职场文书
组工干部对照检查材料
2014/08/25 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
教师求职自荐信
2015/03/26 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
Python还能这么玩之只用30行代码从excel提取个人值班表
2021/06/05 Python
详解CSS3浏览器兼容
2022/12/24 HTML / CSS