《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}

 

posted @ 2018-04-24 16:37  jonas_von  阅读(151)  评论(0编辑  收藏  举报