一、任务描述
本实验任务主要基于完成Python的环境搭建,打算对Dict字典进行基本操作,通过完成本实验任务,要求学生熟练掌握字典创建、字典内置函数和字典内置方法来完成字典的基本操作,并对字典的基本操作进行整理并填写工作任务报告。
二、任务目标
1、掌握Dict的函数
2、掌握Dict的语法及内置函数
三、任务环境
Ubuntu、Python2.7
四、任务分析
字典是Python语言中唯一的映射类型。
映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的关系,通常被认为是可变的哈希表。
字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。
字典类型与序列类型的区别:
1.存取和访问数据的方式不同。
2.序列类型只用数字类型的键(从序列的开始按数值顺序索引);
3.映射类型可以用其他对象类型作键(如:数字、字符串、元祖,一般用字符串作键),和序列类型的键不同,映射类型的键直接或间接地和存储数据值相关联。
4.映射类型中的数据是无序排列的。这和序列类型是不一样的,序列类型是以数值序排列的。
5.映射类型用键直接“映射”到值。
字典是Python中最强大的数据类型之一。
♥ 知识链接 |
键必须独一无二,但值则不必。 值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。 |
♥ 温馨提示 |
大括号是字典,列表是方括号,圆括号是元祖 |
五、任务实施
步骤1、环境准备
右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令打开终端。
在弹出的终端中输入【ipython】进入Python的解释器中。如图1所示。

步骤2、字典创建
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。如图2所示。

访问字典里的值。把相应的键放入熟悉的方括弧,如果用字典里没有的键访问数据,会输出错误。如图3所示。

修改字典。向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对。如图4所示。

删除字典元素。能删单一的元素也能清空字典,清空只需一项操作。删除一个字典用del命令。如图5所示。
【dict.clear()】清空词典所有条目

步骤3、字典内置函数
字典的 cmp() 函数用于比较两个字典元素。如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1,如果字典dict1小于字典dict2返回-1。如图6所示。

len() 函数计算字典元素个数,即键的总数。返回字典的元素个数。如图7所示。

str() 函数将值转化为适于人阅读的形式,以可打印的字符串表示。返回字符串。如图8所示。

type() 函数返回输入的变量类型,如果变量是字典就返回字典类型。如图9所示。

步骤4、字典内置方法
clear() 函数用于删除字典内所有元素。该函数没有任何返回值。如图10所示。

copy() 函数返回一个字典的浅复制。返回一个字典的浅复制。如图11所示。

fromkeys() 函数用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。返回列表。如图12所示。

get() 函数返回指定键的值,如果key在字典中返回默认的value值。不在字典中返回指定键的值。如图13所示。

has_key() 函数用于判断键是否存在于字典中,如果键在字典dict里返回true,否则返回false。如图14所示。

items() 函数以列表返回可遍历的(键, 值) 元组数组。如图15所示。

keys() 函数以列表返回一个字典所有的键。如图16所示。

update() 函数把字典dict2的键/值对更新到dict里。没有任何返回值。如图17所示。

values() 函数以列表返回字典中的所有值。如图18所示。

pop() 方法删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。返回被删除的值。如图19所示。

popitem() 方法随机返回并删除字典中的一对键和值。
如果字典已经为空,却调用了此方法,就报出KeyError异常。返回一个键值对(key,value)形式。如图20所示。
