写点什么

软件测试|一步到位教会你 Python 字典操作(一)

  • 2023-06-05
    北京
  • 本文字数:2364 字

    阅读完需:约 8 分钟


获取更多技术知识


字典(dict)是 python 中的基础数据类型之一,字典的设计并不复杂,我们经常会用到这种数据类型。同时,字典也有一些比较实用的情景。学习任何一种编程语言,基础数据类型都是必备的底层基础,今天,我们来学习下 Python 中字典的使用。

基本用法

在 Python 中,字典是一种可以将相关的两个信息关联起来的操作,并且字典可存储的信息量几乎不受限制。字典是 Python 提供的一种常用的数据结构,它用于存放具有映射关系的数据。为了保存具有映射关系的数据,Python 提供了字典,字典相当于保存了两组数据,其中一组数据是关键数据,被称为 key;另一组数据可通过 key 来访问,被称为 value。


  1. 创建字典字典是以 key、value 的形式创建的。字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:


dict = {key1:value1, key2:value2}
复制代码


一般情况下,字典的创建可以有以下几种方式:


# 创建一个空的字典 my_dict1 = {} # 创建 key 值为整数的字典 my_dict2 = {1: 'apple', 2: 'ball'} # 创建 key 值为 string 的字典 my_dict3 = {'name1': 'apple', 'name2': 'ball'} # 创建 key 值为 数字 和 string 混合的字典 my_dict4 = {'name': 'apple', 1: [2, 4, 3]} # 用 dict() 函数创建字典 my_dict5 = dict({1:'apple', 2:'ball'}) # 以元组的形式组成序列创建字典 my_dict6 = dict([(1,'apple'), (2,'ball')]) 

print('my_dict1:', my_dict1) print('my_dict2:', my_dict2) print('my_dict3:', my_dict3) print('my_dict4:', my_dict4) print('my_dict5:', my_dict5) print('my_dict6:', my_dict6)
----------------------------my_dict1: {} my_dict2: {1: 'apple', 2: 'ball'} my_dict3: {'name1': 'apple', 'name2': 'ball'} my_dict4: {'name': 'apple', 1: [2, 4, 3]} my_dict5: {1: 'apple', 2: 'ball'} my_dict6: {1: 'apple', 2: 'ball'}
复制代码


  1. 获取字典中的元素通过 key 来获取 value 获取字典中的元素,可以直接通过 key 值来获取对应的 value,如下:


player = {'name': 'messi', 'age': 36 , 1: [2, 4, 3], '俱乐部':'巴萨'} print(player['name']) print(player('name'))结果如下:messi messi
复制代码


如果字典的 key 值中没有该元素,则不能获取相应的 value,这种情况下将会报错。


print(player['name1'])
# 输出: KeyError Traceback (most recent call last) <ipython-input-4-eedb02e2ace8> in <module> ----> 1 print(player['name1']) KeyError: 'name1'
复制代码


  1. 在字典中修改或添加元素在字典中,可以修改已有 key 对应的 value 值,或者添加新的 key-value 键值对数据,如下:


player = {'name': 'messi', 'age': 36 , 1: [2, 4, 3], '俱乐部':'巴萨'}
# 修改已有 key 对应的 value 的值player['club']='大巴黎'
# 添加新的 key-value 数据组player['gender'] = 'male'
# 结果如下{'name': 'messi', 'age': 36 , 1: [2, 4, 3], '俱乐部':'大巴黎', 'gender': 'male'}
复制代码


  1. 从字典中删除元素从字典中删除元素,或者删除整个字典,有以下一些方式。


pop() 方法移除字典数据 pop()方法的作用是:删除指定给定键所对应的值,返回这个值并从字典中把它移除。


# 使用 pop()方法来删除 player = {'name': 'messi', 'age': 36 , 1: [2, 4, 3], '俱乐部':'大巴黎', 'gender': 'male'}player.pop('age') 结果如下:{'name': 'messi',  1: [2, 4, 3], '俱乐部':'大巴黎', 'gender': 'male'}
复制代码


del 方法


# 使用 del 方法来删除player = {'name': 'messi', 'age': 36 , 1: [2, 4, 3], '俱乐部':'大巴黎', 'gender': 'male'}del player[1]结果如下:{'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}
复制代码


popitem() 方法


# 使用 popitem()方法来删除 player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}player.popitem()结果如下:{'name': 'messi', 'age': 36 , '俱乐部':'大巴黎'}
复制代码


clear()方法


# 使用 clear()方法来清空字典中的所有数据,返回的是一个空字典player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}player.clear()
结果如下:{}
复制代码

字典内置函数 &方法

  1. len()len(dict)计算字典元素个数,即键的总数。


player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}len(player)
# 输出如下:4
复制代码


  1. str(dict)输出字典可打印的字符串表示


player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}str(player)
# 输出如下{'name': 'messi', 'age': 36, '俱乐部': '大巴黎', 'gender': 'male'}
复制代码


  1. type(variable)返回输入的变量类型,如果变量是字典就返回字典类型


player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}type(player)
# 输出如下<class 'dict'>
复制代码


  1. copy, keys, values, items 方法


player = {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}print('copy:', player.copy())print('keys:', player.keys())print('values:', player.values()) print('items:', player.items())
# 结果如下copy: {'name': 'messi', 'age': 36 , '俱乐部':'大巴黎', 'gender': 'male'}keys: dict_keys(['name', 'age', '俱乐部', 'gender']) values: dict_values(['messi', 36, '大巴黎', 'male'])items: dict_items([('name', 'messi'), ('age', 36), ('俱乐部', '大巴黎'), ('gender', 'male')])
复制代码


  1. zip()方法


seq = ['name', 'age', 'city'] value = ['messi', 36, 'Paris']player = dict(zip(seq, value))
# 结果如下{'name': 'messi', 'age': 36, 'city': 'Paris'}
复制代码


搜索微信公众号: 霍格沃兹测试学院,学习更多测试开发前沿技术

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|一步到位教会你Python字典操作(一)_霍格沃兹测试开发学社_InfoQ写作社区