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实现模拟登录及表单提交的方法
Jul 25 Python
python语言使用技巧分享
May 31 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
Django实现全文检索的方法(支持中文)
May 14 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
在tensorflow中设置保存checkpoint的最大数量实例
Jan 21 Python
python交互模式基础知识点学习
Jun 18 Python
Python如何读取、写入JSON数据
Jul 28 Python
浅谈Python描述数据结构之KMP篇
Sep 06 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
js获取时间并实现字符串和时间戳之间的转换
2015/01/05 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
javascript url几种编码方式详解
2016/06/06 Javascript
js基于cookie记录来宾姓名的方法
2016/07/19 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
解决循环中setTimeout执行顺序的问题
2018/06/20 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
解决vue 子组件修改父组件传来的props值报错问题
2019/11/09 Javascript
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
python中pip的安装与使用教程
2018/08/10 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
2020/01/13 Python
马来西亚时装购物网站:ZALORA马来西亚
2017/03/14 全球购物
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
大学生职业规划前言模板
2013/12/27 职场文书
小学毕业家长寄语
2014/01/19 职场文书
小学音乐教学反思
2014/02/05 职场文书
小学生新年寄语
2014/04/03 职场文书
民事授权委托书范文
2014/08/02 职场文书
安全施工责任书
2014/08/25 职场文书
团支部组织委员竞选稿
2015/11/21 职场文书
入团申请书格式
2019/06/20 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python