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 24 Python
python网络编程学习笔记(五):socket的一些补充
Jun 09 Python
Python使用xlrd模块操作Excel数据导入的方法
May 26 Python
轻松掌握python设计模式之策略模式
Nov 18 Python
Django内容增加富文本功能的实例
Oct 17 Python
Python+Django搭建自己的blog网站
Mar 13 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Python根据服务获取端口号的方法
Sep 25 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
Feb 28 Python
Python代码执行时间测量模块timeit用法解析
Jul 01 Python
Python基础之元组与文件知识总结
May 19 Python
浅析python中特殊文件和特殊函数
Feb 24 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
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
2018/03/12 PHP
JavaScript自执行闭包的小例子
2013/06/29 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
使用vue实现各类弹出框组件
2019/07/03 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python正则表达式使用经典实例
2016/06/21 Python
详谈python3 numpy-loadtxt的编码问题
2018/04/29 Python
Python实现图片拼接的代码
2018/07/02 Python
python opencv实现图像边缘检测
2019/04/29 Python
使用Python实现跳一跳自动跳跃功能
2019/07/10 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python csv文件的读写操作实例详解
2019/11/19 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
英国蛋糕装饰用品一站式商店:Craft Company
2019/03/18 全球购物
会计专业的自荐信
2013/12/12 职场文书
物流司机岗位职责
2013/12/28 职场文书
消防器材管理制度
2014/01/28 职场文书
产品设计开发计划书
2014/05/07 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
保证书格式
2015/01/16 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
python基础入门之字典和集合
2021/06/13 Python