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 | 返回类似集合的可遍历的值列表 |
示例代码
|
# 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) |
示例结果
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。
原文链接:https://juejin.im/post/5cd575506fb9a032297b1a45