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生成指定长度的随机数密码
Jan 23 Python
python实现堆栈与队列的方法
Jan 15 Python
给Python初学者的一些编程技巧
Apr 03 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例
Dec 12 Python
python实现图片识别汽车功能
Nov 30 Python
Python实现八皇后问题示例代码
Dec 09 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
Django如何防止定时任务并发浅析
May 14 Python
python脚本执行CMD命令并返回结果的例子
Aug 14 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
浅析Python迭代器的高级用法
Jul 16 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
改造一台复古桌面收音机
2021/03/02 无线电
基于php设计模式中工厂模式详细介绍
2013/05/15 PHP
php通过array_push()函数添加多个变量到数组末尾的方法
2015/03/18 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
深入理解JavaScript系列(46):代码复用模式(推荐篇)详解
2015/03/04 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
SpringMVC返回json数据的三种方式
2015/12/10 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
HTML5+Canvas调用手机拍照功能实现图片上传(下)
2017/04/21 Javascript
AngularJS实现进度条功能示例
2017/07/05 Javascript
Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
2018/05/21 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
Python读取mp3中ID3信息的方法
2015/03/05 Python
Sanic框架路由用法实例分析
2018/07/16 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
罗德与泰勒百货官网:Lord & Taylor
2016/08/12 全球购物
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
奥地利手表、香水、化妆品和珠宝购物网站:Brasty.at
2021/01/17 全球购物
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
就业协议书范本
2014/04/11 职场文书
《蝙蝠和雷达》教学反思
2014/04/23 职场文书
大学生撤销处分思想汇报
2014/09/12 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
七年级作文之关于奶奶
2019/10/29 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
详解nodejs内置模块
2021/05/06 NodeJs
JS实现数组去重的11种方法总结
2022/04/04 Javascript
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android