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实现115网盘自动下载的方法
Sep 30 Python
图文详解WinPE下安装Python
May 17 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
Python 搭建Web站点之Web服务器与Web框架
Nov 06 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python下载网络文本数据到本地内存的四种实现方法示例
Feb 05 Python
Python 中的lambda函数介绍
Oct 10 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
Python 忽略文件名编码的方法
Aug 01 Python
Python hashlib模块的使用示例
Oct 09 Python
在Windows下安装配置CPU版的PyTorch的方法
Apr 02 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/04 新手入门
php提示undefined index的几种解决方法
2012/05/21 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
php中{}大括号是什么意思
2013/12/01 PHP
extjs form textfield的隐藏方法
2008/12/29 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jQuery总体架构的理解分析
2011/03/07 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
2015/12/01 Javascript
js实现的星星评分功能函数
2015/12/09 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
AngularJS入门教程之Cookies读写操作示例
2016/11/02 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
如何运行Python程序的方法
2013/04/21 Python
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
Python 查看list中是否含有某元素的方法
2018/06/27 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Django项目基础配置和基本使用过程解析
2019/11/25 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
优秀大专毕业生求职信
2014/08/04 职场文书
一份文言文检讨书
2014/09/13 职场文书
医院领导班子查摆问题对照检查材料思想汇报
2014/10/08 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
员工升职自荐信
2015/03/27 职场文书
不同意离婚答辩状
2015/05/22 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
导游词之无锡唐城
2019/12/12 职场文书