字典

字典

语法

{key:value}:key是关键字,必须是不可变类型,value是key对应的值,两者是一对,value可以是任意数据类型。

创建字典

方法一:使用{}来创建。如:d={'name':'ivan};d2={},d2是空字典

方法二:使用dic()来创建。如:d=dic(),创建一个空字典

通过Key访问value
p = {'name':'bob','age':100}
​
print(p['name']) # 通过Key访问value

 

get()方法也可以通过key访问value

是dic[key]这种方法的高级版。使用dic[key]方法时,如果Key不存在,会引发Keyerror错误,get()方法则只会返回None,不会导致错误

p = {'name':'bob','age':100}
print(p.get('name')) # 结果跟p['name']一样

 

setdefault()也可以通过key访问value

与前两个方法不同的是如果要获取的key在字典中不存在,该方法会先为该Key指定一个默认的value,再获取这个value

p = {'name':'bob','age':100}
print(p.setdefault('gender','')) #
print(p) #{'name': 'bob', 'age': 100, 'gender': '女'}
给字典添加key-value对

如果字典中已经有这个Key,则修改该key对应的value,否则增加新的key-value对。

p = {'name':'bob','age':100}
p['gender'] = ''
print(p) # {'name': 'bob', 'age': 100, 'gender': '女'}

 

通过key删除value
p = {'name': 'bob', 'age': 100, 'gender': ''}
del p['gender']
print(p) # {'name': 'bob', 'age': 100}

 

dic.clear()清空字典
p = {'name': 'bob', 'age': 100, 'gender': ''}
p.clear()
print(p) # {}

 

a.update(b):用b字典去更新另a字典。

如果a字典与b字典有相同的key,则用b字典的value跟新a字典中的value,如果两个字典的Key不相同,则会把b字典中的Key-value对添加到字典a中

p = {'name': 'bob'}
d = {'name':'jack'}
p.update(d)
print(p) # {'name':'jack'}
p = {'name': 'bob'}
d = {'gender':''}
p.update(d)
print(p) # {'name': 'bob', 'gender': '女'}

 

items()获取所有的Key-value对
p = {'name': 'bob', 'age': 100, 'gender': ''}
print(p.items())

 

keys()获取所有的key
p = {'name': 'bob', 'age': 100, 'gender': ''}
print(p.keys()) # dict_keys(['name', 'age', 'gender'])

 

values()获取所有的value
p = {'name': 'bob', 'age': 100, 'gender': '女'}
print(p.values()) # dict_values(['bob', 100, '女'])

  

pop(key)获取指定key对应的value,并将这对Key-value删除
p = {'name': 'bob', 'age': 100, 'gender': ''}
print(p.pop('gender')) #
print(p) # {'name': 'bob', 'age': 100}

 

popitem()弹出底层存储的最后一个Key-value对,并将这个Key-value对删除

这个方法弹出的时一个元组

p = {'name': 'bob', 'age': 100, 'gender': ''}
print(p.popitem()) # ('gender', '女')

 

fromkeys()用给定的多个Key创建字典,这些Key的value默认是None,也可以指定默认的value
d = dict.fromkeys(['name','age'],'bob')
print(d) # {'name': 'bob', 'age': 'bob'}

posted on 2020-03-29 16:38  VinceZhang  阅读(130)  评论(0)    收藏  举报

导航