python中字典的常用操作

11个Python3字典内置方法大全与示例汇总

概述

在绝大部分的开发语言中与实际开发过程中,dictionary扮演着举足轻重的角色。从我们的数据模型到服务器返回的参数到数据库的应用等等,dictionary的身影无处不在。

在python中,dictionary是一种可变的容器类型。所谓容器类型,就是我们放置数据的地方。不同于list的有序、操作时对数据类型统一性的要求较严格,dictionary是一种可变的、不限存储对象、无序的数据模型。

字典有着类似列表的高灵活度的特点,而与列表通过偏移索引的存取元素的方式不同,字典是通过无序的键来存取键值对的,即字典是任意对象的无需集合,可在原处增加或减少,且支持任意深度的嵌套(即可以包含诸如列表,其他的字典等),下面就介绍了python提供的11个字典内置方法的基本概述及简单示例。

方法 描述
clear 清除字典中所有键值对
copy 对字典进行浅拷贝,如需详细了解可以参考上上节可变对象的浅拷贝和深拷贝详解《python列表赋值,复制,深拷贝以及5种浅拷贝详解》
fromkeys fromkeys(*args, **kwargs) 创建一个新字典,以序列的中元素做字典的键,value 为字典所有键对应的初始值
get get(self, k, d=none) 获取指定键k对应的值,如果该键不存在则返回d,默认为none 该方法可以用来判断某键是否包含在字典内
items 返回类似集合的可遍历的(键, 值) 元组列表
keys 返回类似集合的可遍历的键列表
pop 删除一个键并返回其对应的值
popitem 随机返回并删除字典中的一对键和值(一般删除末尾对),若列表为空再调用此方法会抛出keyerror异常
setdefault setdefault(self, k, d=none) 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值
update 更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中,将键值对添加到字典中,可能是字典,也可能是键-值对序列,详见实例
values 返回类似集合的可遍历的值列表

示例代码

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • # dict
  • import copy
  •  
  • # 示例字典
  • d = {
  •   'name': 'ruo data',
  •   'web': {
  •     'site': 'https://www.ruodata.com',
  •     'basic': 'github'
  •   },
  •   'major': 'python'
  • }
  •  
  • print(d)
  •  
  • print('clear'.center(40, '-'))
  • # clear|清除字典中所有键值对
  • d1 = copy.deepcopy(d)
  • d1.clear()
  • print(d1)
  •  
  • print('copy'.center(40, '-'))
  • # copy|对字典进行浅拷贝,如需详细了解可以参考上上节可变对象的浅拷贝和深拷贝详解《python列表赋值,复制,深拷贝以及5种浅拷贝详解》
  • d2 = copy.deepcopy(d)
  • d2_copy = d2.copy()
  • d2_copy['web']['articl_nums'] = 2
  • print(d2)
  •  
  • print('fromkeys'.center(40, '-'))
  • # fromkeys| fromkeys(*args, **kwargs) 创建一个新字典,以序列的中元素做字典的键,value 为字典所有键对应的初始值
  • d3 = dict.fromkeys(d)
  • print(d3)
  • d3 = dict.fromkeys(d, 'sss')
  • print(d3)
  •  
  • print('get'.center(40, '-'))
  • # get| get(self, k, d=none) 获取指定键k对应的值,如果该键不存在则返回d,默认为`none` 该方法可以用来判断某键是否包含在字典内
  • value = d.get('name')
  • print(value)
  • # 判断键`'team'`是否存在于d中:
  • if d.get('team'):
  •   print(d.get('team'))
  • else:
  •   print(none)
  •  
  • print('items'.center(40, '-'))
  • # items| 返回类似集合的可遍历的(键, 值) 元组列表。
  • items = d.items()
  • print(items)
  • # 利用items 遍历字典打印键值对:
  • for key, value in d.items():
  •   print('{}: {}'.format(key, value))
  •  
  • print('keys'.center(40, '-'))
  • # keys| 返回类似集合的可遍历的键列表
  • keys = d.keys()
  • print(keys)
  •  
  • print('pop'.center(40, '-'))
  • # pop| 删除一个键并返回其对应的值
  • d4 = copy.deepcopy(d)
  • value = d4.pop('name')
  • print(value)
  • print(d4)
  •  
  • print('popitem'.center(40, '-'))
  • # popitem| 随机返回并删除字典中的一对键和值(一般删除末尾对),若列表为空再调用此方法会抛出keyerror异常
  • d5 = copy.deepcopy(d)
  • key_value = d5.popitem()
  • print(key_value)
  • print(d5)
  •  
  • print('setdefault'.center(40, '-'))
  • # setdefault| setdefault(self, k, d=none) 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值。
  • d6 = copy.deepcopy(d)
  • key_value = d6.setdefault('major')
  • print(key_value)
  • key_value = d6.setdefault('unkonw_key', 'unkown_value')
  • print(key_value)
  • print(d6)
  •  
  • print('update'.center(40, '-'))
  • # update| 更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中,将e中键-值对添加到字典d中,e可能是字典,也可能是键-值对序列。详见实例。
  • d7 = copy.deepcopy(d)
  •  
  • # 传一个字典
  • d7.update({'three': 3, 'four': 4})
  • print(d7)
  •  
  • # 传关键字
  • d7.update(five=5, six=6)
  • print(d7)
  •  
  • # 传一个包含一个或多个元组的列表
  • d7.update([('seven', 7), ('eight', 8)])
  • print(d7)
  •  
  • # 传一个包含一个或多个列表的元组
  • d7.update((['nice', 9], ['ten', 10]))
  • print(d7)
  •  
  • # 传一个zip()函数
  • d7.update(zip(['eleven', 'twelve'], [11, 12]))
  • print(d7)
  •  
  • # 使用以上任意方法修改存在的键对应的值
  • d7.update(one=111, two=222)
  • print(d7)
  •  
  • print('values'.center(40, '-'))
  • # values| 返回类似集合的可遍历的值列表
  • values = d.values()
  • print(values)
  • python中字典的常用操作(11个Python3字典内置方法大全与示例汇总)

    示例结果

    python中字典的常用操作(11个Python3字典内置方法大全与示例汇总)

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。

    原文链接:https://juejin.im/post/5cd575506fb9a032297b1a45