lsekfe 发表于 2021-6-1 10:03:30

字典——软件接口测试实战详解(13)

2.5字典
  字典(dict)在其他语言中称作哈希映射(hash map)或者相关数组(associative array)。
  字典可以由一个或多个键值对构成。通常,键(key)和值(value)之间用冒号(:)分隔,若存在多个键值对,键值对之间以逗号进行分隔。就像我们平时可以通过拼音在汉语字典中快速查找到对应的汉字一样,可以通过字典的键快速查找到其对应的值。

  2.5.1创建字典
  字典的创建非常简单。可以创建一个空的字典,即只有一对大括号({}),也可以创建一个包含一个或多个键值对的非空字典。
  如图2-62所示,我们创建了一个空的字典empty,而后又创建了一个包含7个键值对的字典对象dict1。
http://www.51testing.com/attachments/2021/05/15326825_202105311321561Kw10.png
图2-62创建字典的示例代码

  需要重点指出的是字典中的键值是不能重复的,但值可以重复,如dict1字典对象中1、5、6这3个键对应的就是同一个值“熊猫鼠”。
  如果在定义字典的时候,不小心出现了重复的键,会出现后果呢?
  从图2-63中,我们可以看到存在多个键为0的键值对,即“0:'熊猫鼠'”“0:'熊猫'”“0:'接吻鱼'”,从输出结果可以看到只保留了定义字典时最后一个键为0的键值对。
http://www.51testing.com/attachments/2021/05/15326825_202105311321562nQtY.png
图2-63创建包括重复键的字典的示例代码

  从图2-64中,我们可以看到字典的值不仅可以为字符串,还可以是数字,甚至可以是一个元组、列表等。
http://www.51testing.com/attachments/2021/05/15326825_202105311321563v2H4.png
图2-64创建包括不同类型值的字典的示例代码

  2.5.2获取字典元素
  我们可以通过使用“字典名称[键]”的形式来获得该字典中这个键对应的值信息,如图2-65所示。
http://www.51testing.com/attachments/2021/05/15326825_202105311321564QgCc.png
图2-65获取字典中指定键对应值的示例代码

  在图2-65中,使用dict1获取dict1字典对象中“2”这个键对应的值,其输出为888,使用dict1['f']获取dict1字典对象中“f”这个键对应的值,其输出为列表。也可以使用字典的get()方法来达到同样的目的,如图2-66所示。
http://www.51testing.com/attachments/2021/05/15326825_20210531132156506tc.png
图2-66使用字典的get()方法获取指定键对应的值

  通过使用字典的items()方法,可以获得字典的所有键值对信息,如图2-67所示。
http://www.51testing.com/attachments/2021/05/15326825_202105311321566ogoq.png
图2-67使用字典的items()方法获取键值对

  在图2-67中,可以看到字典的items()方法返回的内容以小括号进行分组,键和值间以逗号进行分隔,即返回的是一个元组列表(列表中的元素为元组)。
  如图2-68所示,可以使用keys()方法返回字典对象的所有键。
http://www.51testing.com/attachments/2021/05/15326825_202105311321567kUtG.png
图2-68使用字典keys()方法获取字典对象的所有键

  如图2-69所示,可以使用values()方法返回字典对象的所有值。
http://www.51testing.com/attachments/2021/05/15326825_202105311321568f8Av.png
图2-69使用字典values()方法获取字典对象的所有值

  2.5.3修改字典
  创建字典以后,如果要修改字典的值,可以应用update()方法,或者直接找到对应键再赋值。
  如图2-70所示,可以通过对字典中对应元素的键赋值来修改其值,以修改“3:'熊猫鼠'”为例,该元素的键为“3”,值为'熊猫鼠',通过dict1='斑马鱼',就可以将“3”这个键的值修改为'斑马鱼'。也可以应用字典的update()方法来完成。这里我们继续将“3”这个键的值变更为'海马',同时又添加了一个键值对,即“8:'蜗牛'”。经过上述变更后,dict1字典对象的内容为{3: '海马', 4: '地图鱼', 5: '熊猫鼠', 2: 888, 0: , 'f': , 8: '蜗牛'}”。
http://www.51testing.com/attachments/2021/05/15326825_202105311321569YFrJ.png
图2-70修改字典

  2.5.4字典元素计数
  字典对象提供的所有方法如图2-71所示。字典对象没有提供对其元素进行计数的方法,那么有没有其他对字典元素进行计数的方法呢?
http://www.51testing.com/attachments/2021/05/15326825_2021053113215610rh0S.png
图2-71字典对象提供的所有方法

  我们可以使用len()函数来实现对字典元素的计数。
  如图2-72所示,我们定义了一个字典对象,其包含了5个键值对元素,即“3: '熊猫鼠',4: '地图鱼',5: '熊猫鼠',2: 888,0: ”。先通过print()方法输出dict1对象,后使用len(dict1)函数获取dict1对象的长度,也就是它共包含了多少个键值对,其输出值为5。
http://www.51testing.com/attachments/2021/05/15326825_202105311321561135hP.png
图2-72字典元素计数方法

  2.5.5删除字典或其元素
  可以使用字典对象的pop()、popitem()或者clear()方法来删除字典的键值对元素或者删除整个字典。
  在使用pop()方法时,需要指定字典的键,其输出为该键的值,pop()方法执行后,该键值对将从字典中消失。
  如图2-73所示,在应用字典的pop()方法时,我们指定“3”这个键,应用print()方法输出其返回的值。从输出结果来看,返回值是“熊猫鼠”。而后输出字典dict1,发现键值对“3:'熊猫鼠'”已从dict1字典中消失。
http://www.51testing.com/attachments/2021/05/15326825_2021053113215612GW7r.png
图2-73pop()方法应用示例

  可以使用字典的popitem()方法,删除字典对象的最后一个键值对元素。
  如图2-74所示,每使用一次popitem()方法,就从字典中弹出最后一个键值对元素。popitem()方法执行后,该键值对从字典中消失。
  有没有一种方法可以快速清空字典的所有键值对元素呢?应用字典的clear()方法,就可以清空字典的所有键值对元素。
http://www.51testing.com/attachments/2021/05/15326825_2021053113215613QfmP.png
图2-74popitem()方法应用示例

  如图2-75所示,当使用字典的clear()方法后,字典的所有键值对元素都被删除,输出的字典对象dict1的内容为空。
http://www.51testing.com/attachments/2021/05/15326825_2021053113215614UDd3.png
图2-75clear()方法应用示例


Miss_love 发表于 2021-6-1 10:15:55

复习一下

千里 发表于 2021-6-3 17:20:28

字典这个数据类型挺重要的,就是感觉有点难,比其他数据类型感觉都要难一点
页: [1]
查看完整版本: 字典——软件接口测试实战详解(13)