《Python学习之路 -- 字典的方法》
字典跟前面说到的列表和元组都不同,字典储存的数据是无序的,并且使用了键值对的方式存储,一个字典可以存储多个键值对(key-value),而且其中的key必须是不可变类型,而value可以是任意的数据类型,在前面已经介绍过字典的基本操作了,下面来介绍字典的内置方法:
dict.clear( )
该方法用于清空字典的所有键值对,返回一个空的字典,该方法会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} print(my_dict) # 输出:{'age': 18, 'name': 'jonas', 'gender': 'male'} 注意:无序,不一定按顺序输出 my_dict.clear() print(my_dict) # 输出: {}
dict.copy( )
该方法用于拷贝字典(浅拷贝),该方法会返回一个副本字典,不会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} copy_dict = my_dict.copy() print(copy_dict,id(copy_dict) == id(my_dict)) # 输出:{'gender': 'male', 'age': 18, 'name': 'jonas'} False
dict.get(k,d=None)
该方法用于读取字典中的属性,如果字典中存在k这个属性,则返回对应的value,如果不存在,则给该属性指定默认值d,并返回该默认值,该方法不会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} result = my_dict.get('name') my_dict.get('address','China') print(result,my_dict) # 输出:jonas {'name': 'jonas', 'age': 18, 'gender': 'male'}
dict.items( )
该方法会将所有键值对存入一个可以转为可迭代对象的容器中,并返回该容器。
dict.keys( )
该方法会将所有键存入一个可以转为可迭代对象的容器中,并返回该容器。
dict.values( )
该方法会将所有值存入一个可以转为可迭代对象的容器中,并返回该容器。
my_dict = {'name':'jonas','age':18,'gender':'male'} for item in my_dict.items(): print(item) # 输出:('name', 'jonas') ('age', 18) ('gender', 'male') for key in my_dict.keys(): print(key) # 输出:name age gender for value in my_dict.values(): print(value) # 输出:jonas 18 male
dict.pop(k,d=None)
该方法用于删除字典中的k键值对,如果存在,则直接删除,并返回对应的value,如果不存在,则返回第二个参数d
my_dict = {'name':'jonas','age':18,'gender':'male'} result = my_dict.pop('name') print(my_dict,result) # 输出:{'age': 18, 'gender': 'male'} jonas
dict.popitem( )
随机删除字典中的一对键值对,并将被删除的键值对封装成一个元组返回,该方法会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} result = my_dict.popitem() print(result) # 输出:('age', 18)
dict.setdefault(k,d=None)
该方法用于给字典的属性k设置默认值,如果该属性已经存在,则不设置默认值d,并且返回该key对应的value;如果属性不存在,则设置默认值,结果返回这个默认值,该方法会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} result = my_dict.setdefault('name','Tom') print(result) # 输出:jonas result2 = my_dict.setdefault('address','China') print(result2,my_dict) # 输出:China {'address': 'China', 'gender': 'male', 'age': 18, 'name': 'jonas'}
dict.update(E=None,**F)
该方法用于更新字典的键值对,该方法会改变原字典。
my_dict = {'name':'jonas','age':18,'gender':'male'} # 可以传一个字典作为参数,如果某些键已经存在,则覆盖,如果不存在则新建 result = my_dict.update({'address':'China','name':'Jerry'}) print(my_dict) # 输出:{'age': 18, 'gender': 'male', 'address': 'China', 'name': 'Jerry'} # 还可以传多个键值对 result2 = my_dict.update(hobby='football',weight=120) print(my_dict) # 输出:{'hobby': 'football', 'gender': 'male', 'name': 'Jerry', 'weight': 120, 'address': 'China', 'age': 18}