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之入门(四)运算
May 27 Python
Python中zip()函数用法实例教程
Jul 31 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
pandas数值计算与排序方法
Apr 12 Python
python散点图实例之随机漫步
Aug 27 Python
python中调试或排错的五种方法示例
Sep 12 Python
Python+Redis实现布隆过滤器
Dec 08 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
python实现程序重启和系统重启方式
Apr 16 Python
python3.6使用SMTP协议发送邮件
May 20 Python
用python绘制樱花树
Oct 09 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 curl 并发最佳实践代码分享
2012/09/05 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php获取远程图片并下载保存到本地的方法分析
2016/10/08 PHP
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript Event学习补遗 addEventSimple
2010/02/11 Javascript
Javascript基础 函数“重载” 详细介绍
2013/10/25 Javascript
使用AngularJS创建自定义的过滤器的方法
2015/06/18 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
javascript实现小型区块链功能
2019/04/03 Javascript
axios封装,使用拦截器统一处理接口,超详细的教程(推荐)
2019/05/02 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
Python中的filter()函数的用法
2015/04/27 Python
Python 基础教程之str和repr的详解
2017/08/20 Python
python的paramiko模块实现远程控制和传输示例
2017/10/13 Python
python Celery定时任务的示例
2018/03/13 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python绘制直方图和密度图的实例
2019/07/08 Python
使用OpenCV获取图片连通域数量,并用不同颜色标记函
2020/06/04 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
医科学校毕业生自荐信
2013/11/09 职场文书
《唯一的听众》教学反思
2014/02/20 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
销售会计岗位职责
2014/03/15 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
中华魂演讲稿
2014/05/13 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
2014年预备党员端正入党动机思想汇报
2014/09/13 职场文书
信息合作协议书
2014/10/09 职场文书
2015年小学语文教师工作总结
2015/10/23 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
Java 数据结构七大排序使用分析
2022/04/02 Java/Android