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实现的百度贴吧网络爬虫实例
Apr 17 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
Mar 02 Python
numpy.where() 用法详解
May 27 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
python入门教程之基本算术运算符
Nov 13 Python
pandas针对excel处理的实现
Jan 15 Python
python基础之文件处理知识总结
May 23 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 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分页类
2015/11/12 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
JavaScript脚本语言在网页中的简单应用
2007/05/13 Javascript
js select常用操作控制代码
2010/03/16 Javascript
js字符编码函数区别分析
2011/12/28 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
jQuery实现限制文本框的输入长度
2017/01/11 Javascript
基于vue 实现token验证的实例代码
2017/12/14 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
python反编译学习之字节码详解
2019/05/19 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
戴尔美国官网:Dell
2016/08/31 全球购物
Shell如何接收变量输入
2016/08/06 面试题
大学毕业生简单自荐信
2013/11/05 职场文书
售后服务科岗位职责范文
2013/11/13 职场文书
《海底世界》教学反思
2014/04/16 职场文书
心理咨询承诺书
2014/05/20 职场文书
骨干教师考核评语
2014/12/31 职场文书
2016自主招生校长推荐信范文
2015/03/23 职场文书
公安机关起诉意见书
2015/05/20 职场文书
李强感恩观后感
2015/06/17 职场文书
行政复议答复书
2015/07/01 职场文书
环保建议书作文400字
2015/09/14 职场文书